4.1、反向代理实例一
实现效果:使用 nginx 反向代理,访问ng直接跳转到linux的tomcat 页面\
- linux服务器中启动一个tomcat,windows浏览器地址栏输入 linuxip:8080,出现如下界面
- 通过修改windows本地 host 文件,将 ng映射到 127.0.0.1
# C:\Windows\System32\drivers\etc 192.168.116.131 ng
配置完成之后,我们便可以通过 ng:8080 访问到第一步出现的 Tomcat 初始界面。那么如何只需要输入 ng 便可以跳转到 Tomcat 初始界面呢?便用到 nginx的反向代理。
-
在 nginx.conf 配置文件中增加如下配置
server { listen 80; server_name ng; location / { proxy_pass http://127.0.0.1:8080; root html; index index.html index.htm; } }
如上配置,我们监听80端口,访问域名为ng,不加端口号时默认为 80 端口,故访问该域名时会跳转到 127.0.0.1:8080 路径上。
4.2、反向代理实例二
实现效果:使用 nginx 反向代理,根据访问的路径跳转到不同端口的服务中 nginx 监听端口为 9001,
- 访问 http://ng:9001/a/ 直接跳转到http://192.168.116.1:8080;(这个tomcat部署在windows)
- 访问 http://ng:9001/b/ 直接跳转到 http://127.0.0.1:8082 (这个tomcat部署在linux)
(1)、环境准备
第一步,准备两个 tomcat,在window的tomcat的webapp目录新建a目录,在里面创建a.html,在linux的tomcat下webapp下创建b目录,在里面创建b.html
第二步,修改 nginx 的配置文件 在 http 块中添加 server{}
server { listen 9001; server_name ng; location ~ /a/ { proxy_pass http://192.168.116.1:8080; } location ~ /b/ { proxy_pass http://127.0.0.1:8080; } }
location 指令说明
该指令用于匹配 URL。 语法如下
location [=|~|~*|^~] /uri/ { … }
- = :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求。
- ~:用于表示 uri 包含正则表达式,并且区分大小写。
- ~*:用于表示 uri 包含正则表达式,并且不区分大小写。
- ^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location 块中的正则 uri 和请求字符串做匹配。
注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~* 标识。
(2)、测试:
注意端口开放,我目前是关闭防火墙。