四、nginx配置實例-反向代理


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,

(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/ { … }
  1. = :用於不含正則表達式的 uri 前,要求請求字符串與 uri 嚴格匹配,如果匹配成功,就停止繼續向下搜索並立即處理該請求。
  2. ~:用於表示 uri 包含正則表達式,並且區分大小寫。
  3. ~*:用於表示 uri 包含正則表達式,並且不區分大小寫。
  4. ^~:用於不含正則表達式的 uri 前,要求 Nginx 服務器找到標識 uri 和請求字符串匹配度最高的 location 后,立即使用此 location 處理請求,而不再使用 location 塊中的正則 uri 和請求字符串做匹配。

  注意:如果 uri 包含正則表達式,則必須要有 ~ 或者 ~* 標識。

(2)、測試:

  注意端口開放,我目前是關閉防火牆。

  http://ng:9001/a/a.html

  http://ng:9001/b/b.html

 


免責聲明!

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



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