web中间件应用系列:Nginx正向代理(共享)上网

本系列文章是把作者学习web中间件时候的实操记录分享出来,内容主要包括web中间件入门的一些理论概念知识、场景应用、程序部署,希望能够帮到一些初学者,少走一些弯路。

Nginx正向代理(共享)上网

代理服务器#、#正向代理#、#反向代理#、#nginx正向代理#、#nginx正向代理上网#、#共享上网

1.场景

正向代理可以实现代理上网场景。代理的过程涉及到3个角色,客户端(即用户)(client)、代理服务(proxy)、目标服务器(server),客户端经过代理最终访问目标服务器的资源。

客户端A电脑:192.168.253.131,不能上网。 代理B电脑:192.168.253.1,192.168.1.100,可以上网。

2.配置步骤

(1)配置nginx代理服务 修改config/nginx.conf配置,内容如下

server { listen 8000; resolver 223.5.5.5 114.114.114.114; #DNS服务器 location / { proxy_pass http://$http_host$request_uri; } }

(2)配置客户端 打开“控制面板”或“IE浏览器”-“Internet选项”-“连接”选项卡-“局域网设置”-“代理服务器”,勾选“为LAN使用代理服务器”,地址192.168.2536.1,端口8000,确定。

(3)测试访问 访问地址:http://nginx.org/en/docs/http/ngx_http_core_module.html,可以正常访问。

3.https代理

上面的配置只能代理http协议,现在大多网站都是https协议,只配置上面是不行的,需要配置https代理。 由于nginx本身是不支持https代理的,我网上找了各种方法,主要有2种。 方法一是给nginx安装ngx_http_proxy_connect_module模块,通过编译安装,这里不再赘述,不支持windows。其实这个代理配置主要是针对windows的,Linux下可以用系统防火墙自带的SNAT源地址转换更方便,后头找个时间讲讲。 修改config/nginx.conf配置,内容如下

server { listen 8000; resolver 223.5.5.5 114.114.114.114; #DNS服务器 proxy_connect; proxy_connect_allow 443 563; #制定允许开启connect的端口,默认是443和563,可以设置为all location / { proxy_pass http://$http_host$request_uri; } }

方法二是配置另外配置1个server用另一个端口(8001)代理https访问。但是该方法未成功,找原因也没找到(不知道其他人咋搞的),这里不再贴具体配置了。等到回头弄清楚原理以及测试好了再把这部分补上

IT小胖豆:初学者踩坑之路及过程分享,希望能够帮到一些初学者,欢迎各位IT打工人,入坑讨论-_-