Nginx配置多个反向代理
# 15.Nginx配置多个反向代理
本文演示下如何让Nginx分发请求到不同的路径里
# 需求
启动两个Tomcat,其中一个Tomcat端口为8080,另一个Tomcat端口为8081
修改nginx 监听端口为 9001
使用 nginx 反向代理,根据访问的路径跳转到不同端口的服务中:
访问 localhost:9001/edu/ 跳转到 127.0.0.1:8080
访问 localhost:9001/vod/ 跳转到 127.0.0.1:8081
# 准备2个Tomcat
如何再启动多一个Tomcat呢?很简单,再复制一份Tomcat的目录,然后修改端口,再次启动Tomcat即可:
再次复制一份Tomcat的目录
mkdir /opt/tomcat8181
cd /opt
tar -zxvf apache-tomcat-9.0.73.tar.gz -C /opt/tomcat8181/
1
2
3
2
3
修改Tomcat8081的端口为8081
cd /opt/tomcat8181/apache-tomcat-9.0.73/conf/
vim server.xml
1
2
2
修改原本的8080端口为8081(大概在69行):
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
1
2
3
2
3
除此之外,还要修改shutdown的端口,将8005改为8015(第22行左右)
<Server port="8005" shutdown="SHUTDOWN">
1
然后启动新的Tomcat:
cd /opt/tomcat8181/apache-tomcat-9.0.73/bin/
./startup.sh
1
2
2
然后访问8081端口,可以看到也是正常的
至此,我们就创建了两个Tomcat了,一个端口号是8080,一个端口号是8081
# 创建测试页面
为了区分不同的Tomcat,我们新建两个HTML文件,这样就可以根据页面来区分到底是哪个Tomcat了
在8080的Tomcat中的webapps目录下,新建edu目录,然后新建index.html页面
cd /opt/apache-tomcat-9.0.73/webapps/
mkdir edu
echo '<h1>This is 8080 Tomcat</h1>' > edu/index.html
1
2
3
2
3
在8081的Tomcat中的webapps目录下,新建vod目录,然后新建index.html页面
cd /opt/tomcat8181/apache-tomcat-9.0.73/webapps/
mkdir vod
echo '<h1>This is 8081 Tomcat</h1>' > vod/index.html
1
2
3
2
3
然后我们通过浏览器来测试下访问这两个文件:可以看到正常访问了
# 修改Nginx配置
修改nginx.conf文件:
server {
listen 9001;
server_name 127.0.0.1;
location ~ /edu/ {
proxy_pass http://127.0.0.1:8080;
}
location ~ /vod/ {
proxy_pass http://127.0.0.1:8081;
}
}
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 测试
接下来,就是reload下Nginx并测试下访问了:
./nginx -s reload
1
完整的Nginx配置
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 9001;
server_name localhost;
location ~ /edu/ {
proxy_pass http://127.0.0.1:8080;
}
location ~ /vod/ {
proxy_pass http://127.0.0.1:8081;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
在GitHub上编辑此页 (opens new window)
上次更新: 2023/4/20 09:11:31