目的:监听相同的端口,根据url中配置的路径不同,访问不同的服务器
一、配置两个tomcat
(一) 将之前解压的tomcat文件夹复制一份出来,进入conf文件夹,修改它的端口号:
vim server.xml
这里改成9005
这里改成8081
然后进入目录,启动服务
./bin/startup.sh
在8080服务的webapp文件夹里面创建一个文件夹,并且编写一个文件
mkdir aa && cd aa && vim a.html
内容
<h1>8080</h1>
在8081服务的webapp文件夹里面创建一个文件夹,并且编写一个文件
mkdir bb && cd bb && vim a.html
内容
<h1>8081</h1>
二、配置nginx
(1) 进入/usr/local/nginx/conf目录,修改nginx的配置文件
在http配置里面增加以下配置,~表示存在:
server {
listen 8800;
server_name localhost;
location ~ /aa/ {
proxy_pass http://127.0.0.1:8080
}
location ~ /bb/ {
proxy_pass http://127.0.0.1:8081
}
}
(2) 重启nginx服务
./sbin/nginx -s reload
(3) 开放相关端口号或者关闭防火墙
查看开放的端口号
firewall-cmd --list-all
设置开放的端口号
firewall-cmd --add-service=http –permanent
firewall-cmd --add-port=8800/tcp --permanent
重启防火墙
firewall-cmd –reload
三、通过不同的路径访问不同的tomcat服务器
在浏览器输入 http://服务器ip:8800/aa/a.html 或者 http://服务器ip:8800/bb/a.html 就可以通过反向代理访问tomcat了
四、location 指令说明
该指令用于匹配 URL。
语法如下:
1、= :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配
成功,就停止继续向下搜索并立即处理该请求。
2、~:用于表示 uri 包含正则表达式,并且区分大小写。
3、~*:用于表示 uri 包含正则表达式,并且不区分大小写。
4、^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字
符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location
块中的正则 uri 和请求字符串做匹配。
注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~* 标识。