标签:http proxy bypass http proxy 忽略http proxy http proxy设置 linux http代理
一,场景:有些linux服务器处于内网,并且没有公网ip,故要想与外网进行http/https通信只能通过nat或者加proxy的方式。nat服务器有网段的限制,而http/https proxy代理则没有,使用起来也方便。但是,使用http/https proxy的时候遇见两个问题:
1,本机去访问一个没有域名解析但是绑定hosts文件的域名的时候,导致访问失败
2,php-fpm中跑的php代码访问外网有域名解析的接口,访问失败
linux系统设置http/https proxy的方法,在/etc/bashrc或者/etc/profile中添加如下环境变量:
export http_proxy=http://1.1.1.1:8082 export https_proxy=http://1.1.1.1:8082
二,问题原因
1,应该是由于环境变量的优先级别高于/etc/hosts文件,导致本机去访问一个没有域名解析但是绑定hosts文件的域名的时候仍然走http/https代理,而代理server访问不到要指定的域名从而导致访问失败。
2,php-fpm默认没有加载到系统的http/https proxy的环境变量设置,需要修改php-fpm的配置来解决问题。
三,问题解决
1,对那些没有域名解析通过绑定hosts文件来访问的域名,不让其走http/https代理
在/etc/bashrc或者/etc/profile中添加如下环境变量:
export no_proxy='a.test.com,127.0.0.1,2.2.2.2'
2,添加php-fpm关于env的如下配置,然后重启php-fpm即可:
env[http_proxy] = "http_proxy=http://1.1.1.1:8082" env[https_proxy] = "https_proxy=http://1.1.1.1:8082" env[no_proxy] = "a.test.com,127.0.0.1,2.2.2.2"
四,扩展
1,用过的http/https proxy软件:
nginx
tinyproxy(简单好用,支持http/https协议)
linux设置http/https proxy及忽略proxy的方法
标签:http proxy bypass http proxy 忽略http proxy http proxy设置 linux http代理
原文地址:http://blog.51cto.com/leejia/2048270