实例一
实现效果:
使用 nginx 反向代理,访问 www .123 .com 直接跳转到 127.0.0.1:8080
访问过程分析
实验过程
(1)启动一个 tomcat,浏览器地址栏输入 127.0.0.1:8080,验证tomcat是否启动成功。
(2)通过修改本地 host (C:\Windows\System32\drivers\etc\host)文件,将 www.xb.com 映射到 127.0.0.1
127.0.0.1 www.xb.com
此时就已经可以通过访问www.xb.com:8080访问tomcat的界面了(此时8080端口号是不能省略的),那么如何只需要输入 www.xb.com 便可以跳转到 Tomcat 初始界面呢?
(3)在 nginx.conf 配置文件中增加如下配置
如上配置,我们监听 80 端口,访问域名为 www.xb.com,不加端口号时默认为 80 端口,故 访问该域名时会跳转到 127.0.0.1:8080 路径上。在浏览器端输入 www.xb.com 结果如下(需要启动nginx):
实列二
实现效果:
使用 nginx 反向代理,根据访问的路径跳转到不同端口的服务中,nginx 监听端口为 9001,
访问 http://127.0.0.1:9001/edu/ 直接跳转到 127.0.0.1:8081访问 http://127.0.0.1:9001/vod/ 直接跳转到 127.0.0.1:8082
步骤:
(1)准备两个 tomcat 服务器,一个 8080 端口,一个 8081 端口
(2)创建文件夹和测试页面
(3)具体配置
另加一个server块
访问:http://127.0.0.1:9001/edu/a.html
访问:http://127.0.0.1:9001/vod/b.html
location 指令说明
该指令用于匹配 URL。语法如下:
1、= :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求。2、~:用于表示 uri 包含正则表达式,并且区分大小写。3、~*:用于表示 uri 包含正则表达式,并且不区分大小写。4、^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location块中的正则 uri 和请求字符串做匹配。注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~* 标识。