原创:花括号MC(微信公众号:huakuohao-mc),欢迎分享,转载请保留出处。
关于
Nginx
,除了用它做正常的
Web
服务器,还经常用它做网络代理服务器使用;来解决网络访问受限的问题。日常大家讨论最多的就是“正向代理”和"反向代理"。很多人,经常会弄不明白什么是"正向代理",什么又是"反向代理",他们之间到底有什么区别?
其实
Nginx
只有一种代理转发功能。之所以大家经常会说正向代理或者是反向代理是因为站的角度不一样。我们可以想象一下80-90年代,机关大院里面负责收发信件的老大爷,把老大爷收发信件动作,想象成
Nginx
对请求的转发功能。
当老大爷把内部信件发往外部时,我们定义为
正向代理
,那么当老大爷把外部发往内部的信件转发给内部每个具体的人时,就叫做
反向代理
。但是对于老大爷来说都是代理,完成的动作都是一样的。对于
Nginx
来说也是一样的,所有网络请求转发指令都是一样的。
Nginx代理指令对比
将内部请求转发到外部。
upstream baidu {
server www.baidu.com;
server{
listen 8100;
server_name proxy_baidu;
location / {
proxy_pass http://baidu;
访问 proxy_ip:8100
将会通过代理服务器把请求发出去。
将外部请求转发到内部
upstream test-api {
ip_hash;
server 192.168.32.12:80;
server 192.168.32.13:80;
server{
listen 8080;
location / {
proxy_pass http://test-api;
这段配置将会把外部发往Nginx
请求转发给内部的192.168.32.12
和192.168.32.13
这两台服务器。
通过对比两段配置会发现,对于Nginx
来说,无论正向代理还是反向代理,指令都是一样的。所以对于Nginx
来说,都是代理,不分正反。最后附上一份示意图,来进一步说明Nginx
网络代理的角色。
1. Java并发编程那些事儿(十)——最后的总结
2. 该如何理解Java中的Class类
3. Awk这件上古神兵你会用了吗
4. 手把手教你搭建一套ELK日志搜索运维平台
原创:花括号MC(微信公众号:huakuohao-mc)。关注JAVA基础编程及大数据,注重经验分享及个人成长。