nginx根據不同的訪問地址路由到不同的服務


nginx根據不同的訪問地址路由到不同的服務

1 目標描述

當訪問的瀏覽器的url不一樣時,請求會路由到不同的服務器上;

目標如下:

  • 輸入以web開頭的地址路由到web相關的api上;
  • 輸入以phone開頭的地址路由到phone相關的api上;

結果展示

訪問http://127.0.0.1:9999/phone/app/a.html,瀏覽器返回的結果為:

server-phone

訪問http://127.0.0.1:9999/web/app/a.html,瀏覽器返回的結果為:

server-web

2 環境准備

  1. 配置好兩個tomcat,端口號分別為8080,8081;
  2. 分別在兩個tomcat的webapp目錄中分別創建app文件夾;
  3. 分別兩個服務器中的app文件夾內編寫a.html文件;
  4. 8081服務器中a.html內容為server-web;80801中a.html的內容為server-phone;
  5. 分別測試http://127.0.0.1:8080/app/a.htmlhttp://127.0.0.1:8081/app/a.html,測試返回結果是否正常;

3 nginx配置

在server模塊配置如下

    server {
        listen       9999; # 監聽的端口號
        server_name  192.168.0.103; # nginx所在的服務器ip
		# 訪問web開頭的url路由的服務地址
        location /web {
            proxy_pass   http://127.0.0.1:8080/;
        }
        # 訪問phone開頭的url路由的服務地址
		location /phone {
            proxy_pass   http://127.0.0.1:8081/;
        }
    }

啟動nginx

./nginx

訪問url測試是否配置成功,測試url如下:

http://127.0.0.1:9999/web/app/a.html
http://127.0.0.1:9999/phone/app/a.html

4 注意事項

location中后面如果不是單純的/情況下,比如location /web,這個時候proxy_pass配置的url一定要以/結尾;否則則會訪問不到對應的server服務;

錯誤樣例

proxy_pass   http://127.0.0.1:8081;

正確樣例

proxy_pass   http://127.0.0.1:8081/;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM