squid 正向代理的简单配置
Linux 正向代理
项目上web服务器不给访问外网,迁移服务器环境又太麻烦,决定给 web 服务器做正向代理,刚开始使用 nginx,但是 http 代理一直不成功,后面大佬建议使用 squid 来达到相同目的,在不考虑安全和性能等其他问题下使用 squid 正式太简单了,下面进去正文_
这里先贴出 nginx 代理,http 没问题,但 https 不成功,如果有成功的希望留下几句指导一下,哈哈,谢谢
server {
resolver 114.114.114.114;
listen 10002;
location / {
proxy_pass http://$http_host$request_uri;
proxy_set_header HOST $http_host;
proxy_buffers 256 4k;
proxy_max_temp_file_size 0k;
proxy_connect_timeout 30;
proxy_send_timeout 60;
proxy_read_timeout 60;
proxy_next_upstream error timeout invalid_header http_502;
}
}
server {
resolver 114.114.114.114;
listen 10001;
location / {
proxy_pass https://$host$request_uri;
proxy_buffers 256 4k;
proxy_max_temp_file_size 0k;
proxy_connect_timeout 30;
proxy_send_timeout 60;
proxy_read_timeout 60;
proxy_next_upstream error timeout invalid_header http_502;
}
}
curl https://bizapi.jd.com/api/area/getProvince # 在另外机器上面测试成
需要注意上面访问 https 时只能使用 http,但是我成功
配置 squid 代理
1.安装 squid
yum -y install squid // centos 环境
2.修改内核参数,打开 ip 转发
vim /etc/sysctl.conf # 修改0为1 :# net.ipv4.ip_forward = 1
sysctl -p # 使内核参数修改生效
3.简答修改 squid 配置文件
vim /etc/squid/squid.conf
# 将后面的 http_access deny all 修改为 :# allow
# 将 http_port 修改为自己指定的代理端口:10001
4.启动 squid
service start squid
5.测试代理
curl --proxy 192.168.6.166:10001 https://www.baidu.com
6.配置全局代理 vim /etc/profile
export http_proxy=http://192.168.99.99:10001
export https_proxy=http://192.168.99.99:10001
7.再次测试
curl --proxy 192.168.6.166:10001 https://www.baidu.com #成功
为 jvm 参数设置 http/https 代理
上面我们只是设置了服务器的 http 代理,程序并不能使用,还需要设置 jvm 参数,不然java程序是使用不了服务器的全局http代理的,你可以修改 java 代码设置 http 代理,也可以添加 jvm 参数,这里选择修改 jvm 比较方便
# 修改 Tomact 的 startup.sh 或者 catalina.sh 脚本,添加如下
# ----- Execute The Requested Command -------
#add jmx
export CATALINA_OPTS="$CATALINA_OPTS -Dhttp.proxySet=true"
export CATALINA_OPTS="$CATALINA_OPTS -Dhttps.proxyHost=192.168.6.166"
export CATALINA_OPTS="$CATALINA_OPTS -Dhttps.proxyPort=10001"
#注意:这里我只配置了 https,你也可以添加 http 和不代理的
-Dhttp.proxySet=true
-Dhttp.proxyHost=proxy.xyz.com
-Dhttp.proxyPort=8080
-Dhttps.proxyHost=proxy.xyz.com
-Dhttps.proxyPort=8080
-Dhttp.nonProxyHosts=*.xyz.com
-Dhttps.nonProxyHosts=*.xyz.com
至此,squid 代理 web 服务器访问外网成功!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论