...
server{
resolver 8.8.8.8;
listen 906;
location / {
proxy_pass http://$http_host$request_uri;
}
}
...
编辑nginx.conf文件添加如上配置。
在正向代理的 server 设置中,不需设置 server_name 属性,而是改为设置 resolver 属性
resolver
表示指定DNS解析服务器IP地址,8.8.8.8是Google提供的免费DNS服务器IP地址
proxy_pass
location中配置的proxy_pass 指定代理转发,其中 $http_host$request_uri 是nginx提供给我们的系统变量,表示把我们的请求转发到我们访问的地址。($http_host 指我们要访问的主机名,$request_uri表示我们访问地址后面的参数)。
这个配置只能代理http请求,不能访问https请求。
尝试过再配置一个server来通过443端口代理https请求,但是配置后https网站还是不能访问。
也准备通过添加ngx_http_proxy_connect_module模块来解决问题,但是因为我的nginx版本过高和这个模块不匹配所以也就没有尝试了。
重启Nginx配置
cd /usr/local/sbin
./nginx -s reload
测试访问
将我们客户端的网络设置为代理,代理服务器IP为Nginx服务器的IP,端口号为server中监听的端口号。
浏览器打开 http://www.ip138.com ,可以看到我们的IP地址为我们代理服务器的IP地址则表示代理成功。