Nginx配置实验反向代理

时间:2021-09-29 17:49:27

实验要求

  浏览器访问 8083.mine.com:8081 地址,(Nginx端口是8081)通过Nginx服务器反向代理监听请求,将请求转发到tomcat服务器上,实现真正内容的访问。

实验环境

一台已安装Nginx (port: 8081),tomcat-8.5.39 (port: 8083)的CentOS服务器;

测试主机:Win10

模拟n个http服务器作为目标主机

参考博客 (tomcat的单机多实例部署)进行实例创建。

   1. 服务器上tomcat的安装位置在 /usr/tomcat/tomcat-8.5.39;在它的同级目录下(/usr/tomcat)创建新文件夹tomcat-ins,用作所需创建的实例根目录。

   2. 参考下图,在 tomcat-ins 下创建 webapp01/webapp02 目录,分别对应两个实例目录。创建单个实例时,将正常安装的tomcat目录下的conf,webapps及logs文件夹整个复制到webapp01目录下(temp, work文件夹非必需项)。

      Nginx配置实验反向代理

   3.  修改/webapp01/conf/server.xml配置文件中的三处端口,使其端口号均不同于原来(默认)配置的端口信息,保存后退出。

    Nginx配置实验反向代理

    Nginx配置实验反向代理

    Nginx配置实验反向代理

   4. 编写批处理文件进行实例的启动。原博客中是在windows系统下创建的bat文件;由于我是CentOS系统,所以编写对应的shell脚本文件,内容如下:

    Nginx配置实验反向代理

   文件第二行实现的是修改当前窗口中的环境变量CATALINA_BASE值,该变量是定位基本配置信息所在的目录;

    start.sh脚本文件用来启动单个实例,所以若有多个实例,则需要对应多个脚本文件。

    ps:正常安装的tomcat-8.5.39下的“实例”仍然可以进入bin目录直接运行./startup.sh启动。

   6. 当前目录下直接运行 bash start.sh,显示如下信息即表示tomcat启动成功。

    Nginx配置实验反向代理

    Nginx配置实验反向代理

   7. 浏览器中测试tomcat欢迎页(注意防火墙的对应端口是否开放)。我在服务器上新创建的两个实例weapp01/webapp02,加上正常安装的tomcat,可以有三个              实例同时运行,分别对应端口是8083,8084,8085。

      Nginx配置实验反向代理

      Nginx配置实验反向代理

      Nginx配置实验反向代理

配置IP域名(Win10)

  修改Windows主机的HOSTS文件,配置IP及域名,如下:IP为服务器IP,域名仅为测试用的可任意。

    Nginx配置实验反向代理

配置Nginx

  找到 /usr/local/webserver/nginx/conf/ 目录下的配置文件 nginx.conf,进行编辑,修改如下,修改后重新启动Nginx。

  Nginx配置实验反向代理

浏览器测试

  通过域名+端口方式分别访问 8083.mine.com:8081 和 8084.mine.com:8081地址,此时是监听8081,而8081端口是Nginx服务器的运行端口,它通过反向代理接受客户机请求,找到server_name为8083.mine.com的server节点,根据proxy_pass对应的http路径,将请求转发到upstream tomcatserver1上,即端口号为8083的tomcat服务器。至此Nginx的反向代理配置测试完成。

       Nginx配置实验反向代理

        Nginx配置实验反向代理

        Nginx配置实验反向代理