欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

nginx配置实例 - 反向代理实例二

程序员文章站 2022-05-06 21:00:23
...

一、预期效果

在外部主机的浏览器*问相应地址,获得如下效果:

  • 访问http://IP地址:9001/edu,跳转到http://127.0.0.1:8080
  • 访问http://IP地址:9001/vod,跳转到http://127.0.0.1:8081

二、准备工作

1.Tomcat部署

首先,把Tomcat压缩包下载到/usr/src目录下,然后在服务器上安装两个Tomcat,具体操作如下:

cd /usr/src

wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.55/bin/apache-tomcat-9.0.55.tar.gz

mkdir tomcat8080

# -C参数的作用是解压到指定目录
tar -xvf apache-tomcat-9.0.55.tar.gz -C ./tomcat8080

mkdir tomcat8081

tar -xvf apache-tomcat-9.0.55.tar.gz -C ./tomcat8081

然后,修改tomcat8081目录下的Tomcat的配置,操作如下:

# Tomcat配置文件在其conf目录
cd tomcat8081/apache-tomcat-9.0.55/conf
# 修改server.xml
vim server.xml
<?xml version="1.0" encoding="UTF-8"?>
<!--修改port为8086-->
<Server port="8006" shutdown="SHUTDOWN">
 
	<!--此处省略其他配置-->
	
  <Service name="Catalina">
  	<!--修改port为8081,redirectPort为8444-->
    <Connector port="8081" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
               
    <!--此处省略其他配置-->
    
  </Service>
</Server>

2.静态资源

这里需要两个静态页面来简单区分访问的是8080还是8081端口的Tomcat,将它们分别放入两个tomcat的webapps目录下,代码如下:
tomcat8080

cd /usr/src/tomcat8080/apache-tomcat-9.0.55/webapps

mkdir edu
cd edu

vim a.html

# a.html
<h1>8080</h1>

tomcat8081

cd /usr/src/tomcat8081/apache-tomcat-9.0.55/webapps

mkdir vod
cd vod

vim a.html

# a.html
<h1>8081</h1>

3.开放端口

在上一篇文章中,我们开放了8080端口,而80819001端口默认还是关闭的,需要设置防火墙规则来开放这两个端口,命令如下:

firewall-cmd --permanent --add-port=8081/tcp
firewall-cmd --permanent --add-port=9001/tcp
firewall-cmd --reload

4.测试

现在尝试在外部主机访问http://IP地址:8080/edu/a.htmlhttp://IP地址:8081/vod/a.html,出现类似下图的页面则表示Tomcat配置无误:
nginx配置实例 - 反向代理实例二nginx配置实例 - 反向代理实例二

三、nginx配置

我们需要编写一个新的server块来监听9001端口,代码如下:

server {
    listen       9001;
    server_name  192.168.x.x; # 你的Linux服务器IP地址

    # 这里的 ~ 号表示后面的/edu/是正则表达式
    # ~ /edu/ 意思是 匹配uri中包含edu(区分大小写)字符的请求
    location ~ /edu/ {
        proxy_pass http://127.0.0.1:8080;
    }
   
    location ~ /vod/ {
	     proxy_pass http://127.0.0.1:8081;
    }
}

配置完成后,启动nginx。

四、验证

在外部主机的浏览器地址栏输入http://服务器IP地址:9001/edu/a.html,效果如下:
nginx配置实例 - 反向代理实例二在外部主机的浏览器地址栏输入http://服务器IP地址:9001/vod/a.html,效果如下:
nginx配置实例 - 反向代理实例二与预期效果相同,反向代理配置成功。

五、总结

当我们需要使用nginx对多个服务器进行反向代理时,需要在nginx配置文件中编写相应的serverlocation配置,并且开放对应的端口