当前位置:首页 > 技术文章 > 正文内容

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

arlanguage4个月前 (01-07)技术文章30

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

扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/666.html

分享给朋友:

“web中间件应用系列:Nginx正向代理(共享)上网” 的相关文章

该如何申请泛域名SSL证书

泛域名SSL证书目前在实际应用过程很多,特别是对于一些企业用户和高校用户,子域名多的情况下使用泛域名SSL证书,可用于保护多个域(主机),由域名字段中的通配符 (*) 指示。这种证书主要用于具有许多子域的组织。通配符证书对主域及其所有次级子域有效且无数量限制,方便集成化管理。了解什么是泛域名SSL证...

docker安装php

本节将介绍在线使用Docker安装PHP解析器的步骤。通过本节的实操,您可以掌握从Docker环境的使用,PHP镜像以及Nginx服务器的拉取、导入、容器的启动的全部过程,从而具备使用Docker安装并部署PHP与ngninx的能力。本节要求您具备的基本能力有Linux,Docker,以及nginx...

405状态码Nginx解决办法

最近由于业务系统并发量比较大,所以在已有负载均衡的基础上,我们做了Nginx动静分离,但是系统访问后报错,经过F12(浏览器开发者模式)和Nginx日志分析,发现请求状态变成了405,故百度解释如下:问题原因: 请求的方式(get、post、delete)方法与后台规定的方式不符合。比如: 后台方...

一般人绝对无法发现的nginx锅

nginx热启动:nginx -s reloadPS:要在/etc/profile环境变量PATH里配置nginx的路径。配置完执行 source /etc/profile 让变量生效。 一次部署,同样的前端代码,放到了nginx里面运行,但是有一个模块全部页面都报这个错误,其他模块正常展示。以前遇...

常见nginx配置文件的主上下文指令有哪些?

Nginx 由模块组成,这些模块由配置文件中指定的指令(directive)来控制。指令被分为简单指令和块指令。简单指令由名称和用空格分隔的参数组成,并以分号 (;) 结尾。块指令与简单指令具有相同的结构,但是在分号的位置,它以一组用大括号 ({ 和 }) 括起来的额外指令结束。如果块指令可以在大括...

nginx-UrlRewrite 实现URL重写转发

URL重写在前后端分离的开发模式中,会遇到这样一个需求:前端通过特定路由前缀来访问后端接口,例如:http://localhost/api/getUser,这里 api 即是每一个前端 request 所多加的前缀。nginx 需要把http://localhost/api/getUser 转换成后...