本系列文章是把作者学习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打工人,入坑讨论-_-