doubleyong
管理员
管理员
  • 最后登录2026-05-10
  • 发帖数1198
  • 最爱沙发
  • 喜欢达人
  • 原创写手
  • 社区居民
  • 忠实会员
阅读:3469回复:0

[其它]nginx正向和反向代理的区别

楼主#
更多 发布于:2023-02-03 10:39
一 、区别




1. 代理服务器如果配置在客户端即为正向代理,


如果配置在服务端即为反向代理,和机器个数没有关系




2. 正向代理代替客户端去发送请求,


反向代理代替服务端接受请求


3. 正是因为正向代理代替客户端发送请求,正向代理服务器和客户端对外表现为一个客户端,所以正向代理隐藏了真实的客户端;


反向代理代替服务端接受请求,反向代理服务器和真实服务器对外表现为一个服务端,所以反向代理服务器隐藏真实的服务端






综上,本质上代理服务器还是那个代理服务器,如果替客户端干活就是正向代理,如果替服务端干活就是反向代理;






如图:

图片:2.jpg










二、为什么有正向代理及举例




2.1 为什么有正向代理


正向代理服务器有客户端缺少的功能,比如可以上网、翻墙等等。假如公司服务器的软件在内网部署访问不了internet,就可以配置一台正向代理服务器,通过正向代理服务器上网。






2.2 配置正向代理举例


假设现在有一台主机上不了网,可以通过nginx代理该主机上网,配置如下:

server {    listen       80;      
    server_name  192.168.184.128;    location /proxy_baidu/ {
            proxy_pass http://baidu.com/;    }
}


在浏览器中输入http://192.168.184.128/proxy_baidu 即可访问到百度主页






三、为什么有反向代理及举例


3.1 为什么有反向代理


高并发场景下,一个tomcat服务器可能承受不了那么高的并发量和访问量,所以需要多个服务器分担这个工作,而nginx在高并发的场景下表现是尤为突出的,此时nginx就可以代理多个服务器去接收用户请求,最后交给其中一个服务器处理.






如图:

图片:3.jpg






3.2 配置反向代理举例


在一台服务器上部署两个tomcat,用nginx做反向代理(负载均衡),  nginx配置如下


    upstream tomcatcluster{
        server 127.0.0.1:8080;
        server 127.0.0.1:8081;
    }


    server {
        listen       8090;
        server_name  localhost;


        location / {
           proxy_pass http://tomcatcluster;
        }




tomcat的两个端口为:8080,8081;nginx监听8090端口请求,将请求交给tomcat两个端口处理


下面在浏览器输入http://192.168.184.128:8090/ 就能访问到tomcat主页

图片:4.jpg



来自:
https://blog.csdn.net/shang_0122/article/details/114820532
知识需要管理,知识需要分享
游客


返回顶部

公众号

公众号