5. Nginx 反向代理实例 2
1. 实现效果
使用 nginx 反向代理,根据访问的路径跳转到不同端口的服务中,
nginx 监听端口为 9001
- 访问 http://192.168.17.129:9001/edu/ 直接跳转到 127.0.0.1:8080
- 访问 http://192.168.17.129:9001/vod/ 直接跳转到 127.0.0.1:8081
2、准备工作
(1)准备两个 tomcat 服务器,一个 8080 端口,一个 8081 端口
这个地方,需要将其中代表 8081 的服务器进行修改,进入到
/Tomcat8081/apache-tomcat-7.0.106/conf
1 |
|
(2)创建文件夹和测试页面
说明:tomcat 加载是加载的 webapps 中的东西,所以放在该文件夹下。
在 /Tomcat8080/apache-tomcat-7.0.106/webapps
中,新建
edu 文件夹,并在该文件夹下新建文件 a.html, 内容如下:
1 |
|
在 /Tomcat8081/apache-tomcat-7.0.106/webapps
中,新建
vod 文件夹,并在该文件夹下新建文件 a.html, 内容如下:
1 |
|
3、具体配置
(1)找到 nginx 配置文件,进行反向代理配置
三处改变:监听端口 + nginx地址 + 转发地址
(2)开放对外访问的端口号 9001 8080 8081
4、最终测试
重启 nginx,
1 |
|
1 |
|
location 指令说明
该指令用于匹配 URL。
语法如下:
1、=
:用于不含正则表达式的 uri 前,要求请求字符串与 uri
严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求。
2、~
:用于表示 uri 包含正则表达式,并且区分大小写。
3、~*
:用于表示 uri 包含正则表达式,并且不区分大小写。
4、^~
:用于不含正则表达式的 uri 前,要求 Nginx
服务器找到标识 uri 和请求字符串匹配度最高的 location 后,立即使用此
location 处理请求,而不再使用 location 块中的正则 uri
和请求字符串做匹配。
注意: 如果 uri 包含正则表达式,则必须要有
~
或者 ~*
标识。