一、反向代理与正向代理

  • 正向代理:客户端向服务器请求资源,资源就在服务器上,服务器直接获取到资源返回给服务器。
  • 反向代理:客户端向服务器请求资源,可能客户端请求的资源并不在这台服务器上,服务器需要通过代理去其它服务器获取资源,再将获取到的资源返回给客户端,然而服务器向其它服务器获取资源这个过程客户端是不知道的,客户端任然感觉它请求的资源就是在它请求的那台服务器上*,服务器向其它服务器获取资源这个过程就是反向代理。

比如服务器ip是 192.168.0.10,客户端向服务器请求一个资源时,服务器需要到 192.168.0.49 这个服务器上获取资源再返回给客户端,客户端能够看到的就是它向192.168.0.10这个服务器请求资源,并不知道资源实际上是在192.168.0.49这个服务器上,下面我们就是用 nginx 配置反向代理来实现这个功能

二、nginx 反向代理配置

nginx的安装过程这里就不介绍了,可以看我的上一篇文章:Centos 安装Nginx

​ 配置简单的反向代理其实很简单,首先在nginx配置文件目录下新建一个文件,文件名就叫 fxdl.conf,打开nginx配置文件,找到 http那一节(http开头,用大括号括起来),在结尾大括号前面加上include conf/user-conf/fxdl.conf;,意思就是包含我们新建的配置文件fxdl.comf,主注意不要忘记末尾的分号。

编辑fxdl.comf文件,添加以下内容:

    upstream test{ 
        server 192.168.0.49:9000;   #反向代理获取资源的服务器
    }

    server { 
         listen       80;     # 监听的端口号
        server_name  ty.test.com;  #配置域名,当收到向 ty.test.com 发起的请求时进行反向代理
        
        proxy_intercept_errors on;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-Nginx-Proxy true;

        # 404 页面反向代理
        error_page  404  /404.html;
        location = /404.html {
                proxy_pass http://test;   #192.168.0.49/404.html;
        }

        # 其它请求反向代理
        location / {
                proxy_pass http://test;
                proxy_redirect off;
        }

}

编辑完成后,保存文件,使用 nginx -t 检查配置文件是否正确,然后重新加载配置文件,命令为nginx -s reload,注意需要在防火墙开放对应的端口,开发方法可参考: Linux防火墙Firewall-cmd 基础

文章目录