實現效果:使用 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)、測試:
注意端口開放,我目前是關閉防火牆。