轉 Nginx tomcat配置集群負載均衡

2021-09-07 07:20:23 字數 3214 閱讀 2672

原博文出自於:         感謝!

相信很多人都聽過nginx,這個小巧的東西慢慢地在吞食apache和iis的份額。那究竟它有什麼作用呢?可能很多人未必了解。

反向**(reverse proxy)方式是指以**伺服器來接受internet上的連線請求,然後將請求**給內部網路上的伺服器,並將從伺服器上得到的結果返回給internet上請求連線的客戶端,此時**伺服器對外就表現為乙個伺服器。 

這裡講得很直白。反向**方式實際上就是一台負責**的**伺服器,貌似充當了真正伺服器的功能,但實際上並不是,**伺服器只是充當了**的作用,並且從真正的伺服器那裡取得返回的資料。這樣說,其實nginx 完成的就是這樣的工作。我們讓nginx監聽乙個埠,譬如80埠,但實際上我們**給在8080埠的tomcat,由它來處理真正的請求,當請求完成後,tomcat返回,但資料此時沒直接返回,而是直接給nginx,由nginx進行返回,這裡,我們會以為是nginx進行了處理,但實際上進行處理的是tomcat。

說到上面的方式,也許很多人又會想起來,這樣可以把靜態檔案交由nginx來進行處理。對,很多用到nginx的地方都是作為靜態伺服器,這樣可以方便快取那些靜態檔案,比如css,js,html,htm等檔案。

閒話就不多說了,我們直接來看看nginx怎麼使用。

nginx官網:

安裝很簡單,直接解壓到指定的檔案目錄即可。解壓後的目錄如下:

雙擊nginx.exe,發現一閃而過的視窗,代表nginx服務已經啟動。

也可以使用命令進行啟動,使用命令列進入nginx根目錄下:

nginx -s stop 快速退出

nginx -s quit 優雅退出

nginx -s reload 更換配置,啟動新的工作程序,優雅的關閉以往的工作程序

nginx -s reopen 重新開啟日誌檔案

檢視任務管理器:

可能不止乙個服務存在(我的就有5個服務(┬_┬)),下面驗證是否已經成功啟動,直接訪問http://localhost可以看到如下圖,代表安裝啟動成功:

nginx檔案目錄下有乙個conf資料夾,其中有好幾個檔案,其他先不管,我們開啟nginx.conf,可以看到一段:

這段**在server裡面,相當於乙個**伺服器,當然可以配置多個。

下面我們仔細來分析一下:

listen:表示當前的**伺服器監聽的埠,預設的是監聽80埠。注意,如果我們配置了多個server,這個listen要配置不一樣,不然就不能確定轉到**去了。

server_name:表示監聽到之後需要轉到**去,這時我們直接轉到本地,這時是直接到nginx資料夾內。

location:表示匹配的路徑,這時配置了/表示所有請求都被匹配到這裡

root:裡面配置了root這時表示當匹配這個請求的路徑時,將會在這個資料夾內尋找相應的檔案,這裡對我們之後的靜態檔案伺服很有用。

index:當沒有指定主頁時,缺省會選擇這個指定的檔案,它可以有多個,並按順序來載入,如果第乙個不存在,則找第二個,依此類推。

下面的error_page是代表錯誤的頁面,這裡我們暫時不用,先不管它。

那我們知道了具體的配置了,怎麼讓它訪問localhost時轉到tomcat時。實際上就修改兩個地方:

此時,我們關閉tomcat,重新來執行http://localhost看看效果:

我修改了index.jsp頁面,增加日誌輸出資訊,便於觀察。注意:左上角小貓頭上的:tomcat2、tomcat1。說明訪問了不同的tomcat。

但有時我們就不想它掛的時候訪問另外乙個,而只是希望乙個伺服器訪問的機會比另外乙個大,這個可以在server最後加上乙個weight=數字來指定,數字越大,表明請求到的機會越大。 

這時我們給了18081乙個更高的權值,讓它更有機會訪問到,實際上當我們重新整理http://localhost訪問的時候發現18081訪問機率大很多,18080幾乎沒機會訪問,一般情況下,如果我們必須這樣用,不要相關太大,以免乙個伺服器負載太大。

當然,server還有一些其他的元素,比如down表示暫時不用到該伺服器等等。這些可以參考nginx的wiki。也許寫了一大堆,有人會有問題,那nginx怎麼關閉呢?這倒是個問題,其實直接執行nginx -s stop就可以關閉了。

至此window下nginx+tomcat負載均衡配置結束,關於tomcat session的問題通常是採用memcached,或者採用nginx_upstream_jvm_route ,他是乙個 nginx 的擴充套件模組,用來實現基於 cookie 的 session sticky 的功能。如果tomcat過多不建議session同步,server間相互同步session很耗資源,高併發環境容易引起session風暴。請根據自己應用情況合理採納session解決方案。

參考:

Linux下配置Nginx Tomcat集群

1.安裝和配置tomcat 由於沒有多台linux伺服器,因此我是在一台linux伺服器上部署2個tomcat應用來演示群集,在 usr local 下建立2個目錄,分別為tomcat1和tomcat2,然後將實現準備好的tomcat壓縮包,解壓到這2個目錄中 然後將tomcat2配置檔案內的所有埠...

window環境Nginx Tomcat集群配置

nginx tomcat 1 解壓 nginx 到 e server nginx 1.2.9 命令列啟動nginx 若果想停止nginx dos 環境執行命令 nginx s stop 二 相關配置 2 nginx配置 nginx配置檔案預設在 conf 目錄,主要配置檔案為 nginx.conf ...

nginx tomcat配置集群

解壓,修改conf裡的nginx.conf upstream裡的server配置的是3個伺服器位址,weigth是權重,127.0.0.1是對外ip,listen 90是埠,location裡的prox pass 是依然是對外ip。3.啟動和關閉 啟動nginx cmd進入你們的nginx目錄。st...