192.168.25.216 为虚拟机,安装了nginx。
使用 nginx 反向代理, 根据访问的路径跳转到不同端口的服务中
nginx 监听端口为 9001:
第一步,准备两个 tomcat,一个 8001 端口,一个 8002 端口,并可以正常访问两个tomcat的首页。
增加红框中的配置:
# 本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 包含正则表达式,则必须要有 ~ 或者 ~* 标识。