一、区别

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

  • 2.正向代理代替客户端去发送请求,反向代理代替服务端接受请求

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

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

如下图所示
在这里插入图片描述

要清楚的是,服务器由计算机机器+软件构成,没有安装软件的单个计算机机器不构成服务器,就是一堆铜铁加电路等;

服务器不仅可以作为服务端,也可以作为客户端;如果该服务器向某些客户端提供资源,此时就是服务端,同时如果需要向别的服务器请求资源,此时就是客户端。

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

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.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主页
在这里插入图片描述
参考博客

正向代理的几种配置方式

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐