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.52os.net/

有认证的测试方法:

    curl --proxy 127.0.0.1:8888 --user  aaa:123123  http://www.52os.net

当然也可以在浏览器中设置http代理测试

nginx代理不支持http CONNECT方法,如果访问https网站,会报错:

curl: (56) Received HTTP code 400 from proxy after CONNECT