nginx配置正向http代理
http代理软件非常多,主流的web server也都支持,nginx正向代理功能比较简单,又不支持https,建议使用squid或者ATS这类专业的代理软件,nginx配置http代理比较简单,直接贴配置:
server {
listen 8888;
access_log logs/proxy.access.log;
error_log logs/proxy.error.log;
location / {
resolver 8.8.8.8;
#allow 192.168.1.1; # ip白名单配置
#allow 127.0.0.1;
#deny all;
#auth_basic "Auth needed"; #用户名密码认证
#auth_basic_user_file /path/passwd; #用htpasswd -c /path/passwd user 命令创建
proxy_redirect off;
proxy_pass http://$http_host$uri$is_args$args;
proxy_set_header Host $http_host;
}
}
测试http代理:
curl --proxy 127.0.0.1:8888 http://www.nixops.me/
有认证的测试方法:
curl --proxy 127.0.0.1:8888 --user aaa:123123 http://www.nixops.me
当然也可以在浏览器中设置http代理测试
nginx代理不支持http CONNECT方法,如果访问https网站,会报错:
curl: (56) Received HTTP code 400 from proxy after CONNECT