Nginx配置实验反向代理
l 实验要求
浏览器访问 8083.mine.com:8081 地址,(Nginx端口是8081)通过Nginx服务器反向代理监听请求,将请求转发到tomcat服务器上,实现真正内容的访问。
l 实验环境
一台已安装Nginx (port: 8081),tomcat-8.5.39 (port: 8083)的CentOS服务器;
测试主机:Win10
l 模拟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文件夹非必需项)。
3. 修改/webapp01/conf/server.xml配置文件中的三处端口,使其端口号均不同于原来(默认)配置的端口信息,保存后退出。
4. 编写批处理文件进行实例的启动。原博客中是在windows系统下创建的bat文件;由于我是CentOS系统,所以编写对应的shell脚本文件,内容如下:
文件第二行实现的是修改当前窗口中的环境变量CATALINA_BASE值,该变量是定位基本配置信息所在的目录;
start.sh脚本文件用来启动单个实例,所以若有多个实例,则需要对应多个脚本文件。
ps:正常安装的tomcat-8.5.39下的“实例”仍然可以进入bin目录直接运行./startup.sh启动。
6. 当前目录下直接运行 bash start.sh,显示如下信息即表示tomcat启动成功。
7. 浏览器中测试tomcat欢迎页(注意防火墙的对应端口是否开放)。我在服务器上新创建的两个实例weapp01/webapp02,加上正常安装的tomcat,可以有三个 实例同时运行,分别对应端口是8083,8084,8085。
l 配置IP域名(Win10)
修改Windows主机的HOSTS文件,配置IP及域名,如下:IP为服务器IP,域名仅为测试用的可任意。
l 配置Nginx
找到 /usr/local/webserver/nginx/conf/ 目录下的配置文件 nginx.conf,进行编辑,修改如下,修改后重新启动Nginx。
l 浏览器测试
通过域名+端口方式分别访问 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的反向代理配置测试完成。