文章目录
1、实现效果:
192.168.25.216 为虚拟机,安装了nginx。
使用 nginx 反向代理, 根据访问的路径跳转到不同端口的服务中
nginx 监听端口为 9001:
- 访问 http://192.168.25.216 :9001/edu/ 直接跳转到 192.168.25.216:8081
- 访问 http://192.168.25.216 :9001/vod/ 直接跳转到 192.168.25.216:8082
2、备战
第一步,准备两个 tomcat,一个 8001 端口,一个 8002 端口,并可以正常访问两个tomcat的首页。
3、修改 nginx 的配置文件
增加红框中的配置:
# 本server块监听本机192.168.25.216 的80端口:
server {
listen 80;
server_name 192.168.25.216;
location / {
root html;
proxy_pass http://127.0.0.1:8080
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
# 本server块监听本机192.168.25.216 的9001端口:
server {
listen 9001;
server_name 192.168.25.216;
location ~ /edu/ {
proxy_pass http://127.0.0.1:8081
}
location ~ /vod/ {
proxy_pass http://127.0.0.1:8082
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
配置完成,保存。重启nginx,即可完成实验效果。
补充:
location 指令说明
该指令用于匹配 URL。
语法:
location [ = | ~ | ~* |^~] /uri/ { … }
1、 = :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配
成功,就停止继续向下搜索并立即处理该请求。
2、 ~:用于表示 uri 包含正则表达式,并且区分大小写。
3、 ~*:用于表示 uri 包含正则表达式,并且不区分大小写。
4、 ^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location块中的正则 uri 和请求字符串做匹配。
注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~* 标识。