网易首页 > 网易号 > 正文 申请入驻

Nginx 正向代理与反向代理实战

0
分享至

作者:一角钱技术 来源:今日头条

1. 正向代理与反向代理的区别
1.1 什么是代理服务器?
所谓代理服务器就是位于发起请求的客户端与原始服务器端之间的一台跳板服务器,正向代理可以隐藏客户端,反向代理可以隐藏原始服务器。

上面描述的还不是特别了解,接下来我们就认识一下正向代理和反向代理的区别

1.2 正向代理的概念
正向代理,也就是传说中的代理,他的工作原理就像一个跳板,简单的说,我是一个用户,我访问不了某网站,但是我能访问一个代理服务器,这个代理服务器呢,他能访问那个我不能访问的网站,于是我先连上代理服务器,告诉他我需要那个无法访问网站的内容,代理服务器去取回来,然后返回给我。从网站的角度,只在代理服务器来取内容的时候有一次记录,有时候并不知道是用户的请求,也隐藏了用户的资料,这取决于代理告不告诉网站。

结论就是:正向代理:客户端 <一> 代理 一>服务端 正向代理,是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。

1.3 反向代理的概念
例如:用户访问 http://www.test.com/readme,但 www.test.com 上并不存在 readme 资源,它是偷偷从另外一台服务器上取回来,然后作为转交的内容返回给用户,但用户并不知情。这里所提到的 www.test.com 这个域名对应的服务器就设置来反向代理功能。

结论就是:客户端 一>代理 <一> 服务端 反向代理正好相反,对于客户端而言它就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端,就像这些内容原本就是它自己的一样。

网友的神图,加深理解

1.4 两者区别
从用途上来讲:

  • 正向代理的典型用途是为在防火墙内的局域网客户端提供访问 Internet 的途径。正向代理还可以使用缓冲特性减少网络使用率。
  • 反向代理的典型用途是将防火墙后面的服务器提供给 Internet 用户访问。反向代理还可以为后端的多台服务器提供负载平衡,或为后端较慢的服务器提供缓冲服务。另外,反向代理还可以启用高级 URL 策略和管理技术,从而使处于不同的 web 服务器系统的 web 页面同时存在于同一个 URL 空间下。

从安全性来讲:

  • 正向代理允许客户端通过它访问任意网站并且因此客户端自身,因此你必须采取安全措施以确保为经过授权的客户端提供服务。
  • 反向代理对外都是透明的,访问者并不知道自己访问的是一个代理。

总结:

  • 开放的反向代理应用: Nginx 和 Nat123。Nginx 是单纯的反向代理,需要自行搭建发现代理服务才能使用,效果高。Nat123 是结合来 NAT 和反向代理的应用,可以直接使用,解决80端口问题等,速度快。

2. Nginx 正向代理与反向代理实战
2.1 正向代理配置场景演示
正向代理很常见,我们正常上网就是一种正向代理。 接下来我们演示正向代理的一个场景:

首先在A服务器(IP:192.168.1.110)的Nginx设置访问控制,访问控制之前访问 A 下的test.html是这样的,如下:

1. 在A服务器的Nginx修改配置文件,加入一个判断语句,如果访问A的的 IP 不是 192.168.1.44 (B 服务器IP)则返回403.

location / {
if ( $remote_addr !~* "^192\.168\.1\.44") {
return 403;
}
root html;
index index.html index.htm;
}

添加后reload一下nginx再访问test.html,如下:

此时,在 A服务器 的本地浏览器就是被限制来,访问不了该资源。

1. 接下来,在 B服务器 上修改Nginx配置文件,添加 resolver 和 proxy_pass ,设置如下:

server {
listen 8080;
server_name localhost;
resolver 8.8.8.8;
location / {
proxy_pass http://$http_host$request_uri;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}

resolver 为 DNS 解析,这里填写的IP 为 Google 提供的免费 DNS服务器的IP地址 proxy_pass 配置代理转发

至此便是配置了B服务器所有访问根一级的请求全部代理转发对应到 $http_host$request_uri 去了, $http_host 就是我们要访问的主机名, $request_uri 就是我们后面所加的参数。

简单来说就是相当于配置好了我们请求B服务器,B服务器再去请求我们所请求的地址。

那么接下来我们来看一下结果,我们在本地配置好代理,我这里是mac系统,可以从网络设置中选择高级,然后选择代理。(这里是在 A服务器配置代理)

结果证明,此时在 A服务器 的客户端已经可以成功访问 A 服务器的资源。

以上就是正向代理的一个场景演示,这个过程中可以知道,我们客户端是想要 A 的资源,但是 A 的资源只有 B 能拿到,便让 B 代理去帮助我们访问 A 的资源。整个过程 A 只知道 B 拿了它的资源,并不知道客户端拿到。

2.2 反向代理配置场景演示
反向代理的演示更为简单一些。

1. 首先我们新建一个test.conf的配置文件,启动对应这个配置文件的服务:

server {
listen 8080;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 404 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}

可以看到 server 里 listen 的端口是8080,这里假设我的服务器本身不对外开放8080端口,只开放了80端口。所以此时访问 test.html 结果是访问不到的.

1. 修改Nginx的默认配置文件,添加 proxy_pass 设置如下:

server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
#设置代理
location ~ /test.html$ {
proxy_pass http://127.0.0.1:8080;
}
error_page 500 502 503 504 404 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}

此时便可以访问8080端口配置的资源了,如下:

以上便完成了一个反向代理的演示,这个过程中我们可以知道,客户端想要访问的是 test.html,但是 test.html 实际上是 8080 端口下配置的,中间经过了代理才能拿到。也就是说客户端并不知道中间经历了什么代理过程,只有服务端知道。客户端只知道他拿到了 test.html 也就是8080端口下配置的资源。

3. 总结
经过对正向代理和反向代理概念上的理解、区别,以及在Nginx下演示操作一遍,相信你可以深刻体会到正向代理与反向代理的区别,以及在Nginx下代理的简单配置。

正向代理和反向代理的区别在于代理的对象不一样,正向代理的代理对象是客户端,反向代理的代理对象是服务端。总结一下:

  • 代理服务器站在客户端那边就是正向代理
  • 代理服务器站在服务器那边就是反向代理
  • Nginx 通过 proxy_pass 可以设置代理服务。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
“靖康之耻”有多虐心?皇帝生母每日接客超百人,公主肛裂而死

“靖康之耻”有多虐心?皇帝生母每日接客超百人,公主肛裂而死

阿胡
2024-03-28 15:30:23
全球近一半肝癌在中国,再次提醒:家里的3种食物,尽早撤下餐桌

全球近一半肝癌在中国,再次提醒:家里的3种食物,尽早撤下餐桌

历史有些冷
2024-03-28 18:30:12
太猛了,连续60个涨停,从1.09涨到9.2元,直接翻了9倍!

太猛了,连续60个涨停,从1.09涨到9.2元,直接翻了9倍!

云姐闲聊
2024-03-29 14:40:17
小米汽车一晚收定金1亿,消费者装X后无法退款,雷军:我在亏本

小米汽车一晚收定金1亿,消费者装X后无法退款,雷军:我在亏本

小浣熊社会酱
2024-03-29 15:05:19
中国两个友好邻国倒向西方,决定援乌对抗俄罗斯,我们应高度重视

中国两个友好邻国倒向西方,决定援乌对抗俄罗斯,我们应高度重视

星辰故事屋
2024-03-26 20:38:17
涉间谍活动,一中将被召回

涉间谍活动,一中将被召回

鲁中晨报
2024-03-28 18:53:08
吴亦凡努力踩缝纫机,粉丝称还是那么帅,希望能做男朋友

吴亦凡努力踩缝纫机,粉丝称还是那么帅,希望能做男朋友

泸沽湖
2024-03-28 14:03:40
泪崩!贵州女子被拐33年回家,聋哑的她头发比母亲还白,形如枯槁

泪崩!贵州女子被拐33年回家,聋哑的她头发比母亲还白,形如枯槁

校长侃财
2024-03-29 11:34:54
美首位华裔副总统参选人亮相,她令特朗普、拜登都着急!

美首位华裔副总统参选人亮相,她令特朗普、拜登都着急!

新民晚报
2024-03-29 09:26:39
最高层专门会见,别想了,风向就是转了

最高层专门会见,别想了,风向就是转了

视知产研院
2024-03-28 23:03:40
超募27亿,上市两年从726元跌到了67元,进场的股民全部成了炮灰

超募27亿,上市两年从726元跌到了67元,进场的股民全部成了炮灰

股海风云大作手
2024-03-29 12:56:05
汪小菲并不糊涂,再婚还选台湾姑娘有四大用意,其实心机满满

汪小菲并不糊涂,再婚还选台湾姑娘有四大用意,其实心机满满

李守智
2024-03-29 11:05:53
大学生抄袭插画师作品并在米兰设计周获奖!原作者回应橙柿

大学生抄袭插画师作品并在米兰设计周获奖!原作者回应橙柿

都市快报橙柿互动
2024-03-29 12:25:17
上海飞呼和浩特一航班旅客称遇惊魂90秒,空姐带哭腔安慰,航空公司回应

上海飞呼和浩特一航班旅客称遇惊魂90秒,空姐带哭腔安慰,航空公司回应

潇湘晨报
2024-03-29 16:24:05
马科斯宣布反制中国,国防部直接警告美国,网友:震惊!

马科斯宣布反制中国,国防部直接警告美国,网友:震惊!

新点老
2024-03-29 13:18:04
Netflix《3体》青年叶文洁竟是中国台湾人,3千人海选脱颖而出!

Netflix《3体》青年叶文洁竟是中国台湾人,3千人海选脱颖而出!

ChicMyGeek
2024-03-29 14:25:13
小米SU7发布会闹乌龙:雷军把全国的小爱同学喊崩了

小米SU7发布会闹乌龙:雷军把全国的小爱同学喊崩了

快科技
2024-03-29 09:16:09
发生了什么?中石油突然狂飙!

发生了什么?中石油突然狂飙!

中国基金报
2024-03-29 13:09:30
痛心!80后党委书记张胜军去世,死因引热议,曾因违规吃喝被处分

痛心!80后党委书记张胜军去世,死因引热议,曾因违规吃喝被处分

180°视角
2024-03-29 16:50:24
这可真是穷疯了,一大堆免费的东西,突然开始收费

这可真是穷疯了,一大堆免费的东西,突然开始收费

顾礼先生
2024-03-28 14:09:34
2024-03-29 19:48:49
Nodejs开发
Nodejs开发
分享只有程序员懂的干货
648文章数 824关注度
往期回顾 全部

科技要闻

雷军:我们是卷王,建议BBA车主感受下时代

头条要闻

拉夫罗夫:5月21日后可能不再承认泽连斯基为乌总统

头条要闻

拉夫罗夫:5月21日后可能不再承认泽连斯基为乌总统

体育要闻

拒绝为国出战,他是足坛"天选打工人"

娱乐要闻

胡夏被曝有孩子!工作室火速辟谣

财经要闻

张维迎:如何正确理解企业家精神?

汽车要闻

找回久违的开怀大笑 试驾小米SU7 Max

态度原创

房产
教育
艺术
旅游
时尚

房产要闻

官宣!三亚这片区迎重大教育配套!周边楼盘、小区最全盘点来了!

教育要闻

志愿填报注意!千万避开这些误区和陷阱,考生、家长一定要看!

艺术要闻

艺术开卷|从闺阁、庭院到郊野,古画中的女性生活空间

旅游要闻

赏花不止于“春” 农文旅融合助力乡村

孙艺珍生完孩子,玄彬老了十岁

无障碍浏览 进入关怀版