使用多個tomcat實現負載平衡後,tomcat連接埠不對外開放的情況下,實現精確訪問tomcat的方法

來源:互聯網
上載者:User
  • 背景:

使用Nginx和兩個Tomcat實現了負載平衡,並在防火牆中關閉了tomcat的連接埠(8080和8090),對外只開放80連接埠。Nginx配置如下:

upstream tomcatCluster {

server :8080 ;

server :8090 ;

}

server

{

listen 80;

server_name dev.xjj.cn

……

location / {

……

location ~* //servlet/ {

include proxy.conf;

proxy_pass http://tomcatCluster;

}

}

……

}

註:兩個tomcat的連接埠分別為8080和8090,location語句根據請求URI中的關鍵字“//servlet/”把請求均衡分配到兩個tomcat上。

  • 需求:

當其中一個tomcat升級後,需要直接存取它的頁面以測試是否有錯誤。

  • 需求分析:

Tomcat連接埠已經被防火牆禁止外部存取,無法直接通過“http://:8080/”或“http://:8090/”訪問某個tomcat進行測試。解決的方法只能通過Nginx轉寄。

  • 解決方案:

可以通過Nginx的rewrite結合proxy_pass實現對某個tomcat的直接存取,配置及解釋如下,在Nginx的location配置中添加兩個location配置:

#8080連接埠測試頁面專用

location ~* /tomcat8080-/ {

include proxy.conf;

rewrite ^/tomcat8080-(.*) /$1 break;

proxy_pass http://192.168.0.9:8080;

}

#8090連接埠測試頁面專用

location ~* /tomcat8090-/ {

include proxy.conf;

rewrite ^/tomcat8090-(.*) /$1 break;

proxy_pass http://192.168.0.9:8090;

}

注(以第二個為例):

rewrite語句:把請求URI http://dev.xjj.cn/tomcat8090-/*** 替換為http://dev.xjj.cn//***

proxy_pass語句:把請求http://dev.xjj.cn//*** 替換為 http://192.168.0.9:8090//***

這樣,通過rewrite和proxy_pass語句的結合,實現了對某個tomcat的精確訪問。


以上就介紹了使用多個tomcat實現負載平衡後,tomcat連接埠不對外開放的情況下,實現精確訪問tomcat的方法,包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.