使用nginx搭建tomcat分布式集群


1.下載nginx做負載均衡

下載tomcat做集群,下載

下載memcached做session共享

2.將tomcat文件夾復制多份

修改每個端口號在conf下的server.xml文件夾中找到3個port修改端口號不可重復

1 <Server port="1005" shutdown="SHUTDOWN">
2   <Listener className="org.apache.catalina.startup.VersionLoggerListener"/>
3   <!-- Security listener. Documentation at /docs/config/listeners.html
4   <Listener className="org.apache.catalina.security.SecurityListener" />
5   -->
<!-- port="28888" tomcat監聽端口,隨意設置,別太小 -->
<Connector connectionTimeout="20000" port="1080" protocol="HTTP/1.1" redirectPort="8443"/>
 <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="1009" protocol="AJP/1.3" redirectPort="8443"/>

3.nginx解壓

打開conf打開nginx.conf進行配置

在#gzip on這句代碼后加上

   #gzip  on;

    upstream nginxDemo {  
          server 127.0.0.1:1080;  
         server 127.0.0.1:2080; 
    } 

不要寫localhost,會比較慢,冒號后是剛剛配置的多個tomcat的監聽端口號,這里相當於配置的多個tomcat寫成一個方法,下面直接訪問這里的方法名字

接下來

listen是nginx的監聽端口號,(就是有人訪問80端口就會被nginx發現並且接管,系統默認開啟80端口所以訪問時可忽略不寫:80默認就有)

server——name是服務的名字,我感覺是隨便寫吧

 

        #access_log  logs/host.access.log  main;
        location / {
            proxy_pass http://nginxDemo;
        }
        #error_page  404              /404.html;

location是攔截到訪問80端口的處理方法,原來的內容是訪問靜態網頁,現在刪除掉他們使用proxy_pass http://nginxDemo;這句話,紅色的就是上面多個tomcat那個方法的方法名字,也就是說有人訪問80端口就會被這里轉化為訪問tomcat集群

4.啟動nginx,啟動dos環境,進入到nginx目錄,輸入start nginx啟動

或者直接點擊

如果項目已經啟動了,修改了conf文件則輸入nginx -s reload重新加載conf

啟動自己的多個tomcat,在bin目錄doc命令輸入start startup.bat或者直接點擊

(啟動成功會保留dos命令,一閃而過就是失敗,可以在最后追加pause讓命令行停止查看是否環境有問題,沒問題的話就把call "%EXECUTABLE%" start %CMD_LINE_ARGS%里面的start更改為run運行根據提示查看錯誤信息,沒有問題后把這兩處改回去)--來自

5.驗證

輸入localhost(相當於訪問了localhost:80,80端口電腦默認開啟,可以不用指定)會訪問到tomcat的頁面,這里沒有用Tomcat的端口訪問了tomcat,證明成功

 

 

在多台tomcat上都布置同一種項目,打包項目war包放入webspps下面讓項目自動跳轉index(在WEB-INF指定即可),可以更改每個index的頁面效果,訪問localhost/(項目名字),會跳到本項目的index頁面,驗證如果不同即是成功

 

最終效果

 

 用tomcat效果

 

注意

配置了多台tomcat,如果啟動了每台都要布置這個項目,如果有一個沒有布置可能會出錯(頁面的css,js等等都是從項目開始的web-inf下面的位置,也就是和項目關聯了,用nginx訪問的時候會輪流提供,比如找tomcat1拿了頁面,找tomcat2拿css,而tomcat2沒有布置項目,就找不到css,導致頁面混亂

 參考

jsp 獲取服務器ip 以及端口號

使用nginx加載多個tomcat實現session共享(負載均衡)

tomcat結合nginx使用小結

Nginx+Tomcat的配合使用

Linux下Nginx負載均衡多個tomcat配置

使用war包部署在Tomcat中運行

 

tomcat+nginx+redis實現均衡負載、session共享(一)

 


免責聲明!

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



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