继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Nginx:不管正向还是反向我通通代理

九州编程
关注TA
已关注
手记 475
粉丝 42
获赞 203

关于Nginx,除了用它做正常的Web服务器,还经常用它做网络代理服务器使用;来解决网络访问受限的问题。日常大家讨论最多的就是“正向代理”和"反向代理"。很多人,经常会弄不明白什么是"正向代理",什么又是"反向代理",他们之间到底有什么区别?

其实Nginx只有一种代理转发功能。之所以大家经常会说正向代理或者是反向代理是因为站的角度不一样。我们可以想象一下80-90年代,机关大院里面负责收发信件的老大爷,把老大爷收发信件动作,想象成Nginx对请求的转发功能。

当老大爷把内部信件发往外部时,我们定义为正向代理,那么当老大爷把外部发往内部的信件转发给内部每个具体的人时,就叫做反向代理。但是对于老大爷来说都是代理,完成的动作都是一样的。对于Nginx来说也是一样的,所有网络请求转发指令都是一样的。

Nginx代理指令对比

  1. 将内部请求转发到外部。
upstream baidu {
    server www.baidu.com;
}

server{
    listen 8100;
    server_name proxy_baidu;
    location / {
        proxy_pass http://baidu;
    }
}

访问 proxy_ip:8100 将会通过代理服务器把请求发出去。

  1. 将外部请求转发到内部
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.12192.168.32.13这两台服务器。

结论

通过对比两段配置会发现,对于Nginx来说,无论正向代理还是反向代理,指令都是一样的。所以对于Nginx来说,都是代理,不分正反。最后附上一份示意图,来进一步说明Nginx网络代理的角色。

nginx_proxy.png

作者:花括号MC
链接:https://juejin.cn/post/6953091384362418183
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP