本文轉載自:http://os.51cto.com/art/201111/304608.htm
本文介紹了透過在Windows xp和ubuntu兩種環境下nginx和tomcat的叢集配置,最終實現負載平衡。
AD:
開發的應用採用F5負載平衡交換機,F5將請求轉發給5台hp unix伺服器,每台伺服器有多個webserver實例,對外提供web服務和socket等介面服務。之初,曾有個小小的疑問為何不採用開源的apache、Nginx軟體負載,F5設備動輒幾十萬,價格昂貴?自己一個比較幼稚的問題,後續明白:F5是操作於IOS網路模型的傳輸層,Nginx、apache是基於http反向代理方式,位於ISO模型的第七層應用層。直白些就是TCP UDP 和http協定的差別,Nginx不能為基於TCP協定的應用提供負載平衡。
了解了二者之間的區別於應用場景,對Nginx產生濃厚的興趣,閱讀張宴的(這個85年的小伙子年輕有為羨慕+妒忌),搞明白了大致原理和配置,Ubuntu10.10,window下對Nginx+tomcat負載平衡做了配置嘗試,將全部請求轉發到tomcat,並未做靜態,動態分開,圖片防盜鍊等配置。
Nginx 介紹
Nginx (發音同 engine x)是一款輕量級的Web 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器,並在一個BSD-like 協定下發行。其特點是佔有內存少,並發能力強,事實上nginx的並發能力確實在同類型的網頁服務器中表現較好.目前中國大陸使用nginx網站用戶有:新浪、網易、 騰訊,另外知名的微網志Plurk也使用nginx。
上面的全是Nginx介紹基本上是廢話,下面轉入正題,圖文結合展示基本配置,首先是window環境、其次是Ubuntu環境(Vbox虛擬)。
Window xp環境:Nginx+Tomcat6
1、下載地址
http://nginx.org/en/download.html ,這裡我們推薦下載穩定版(stable versions),本文採用nginx-0.8. 20。
2、目錄結構
Nginx-
|_ 暫存檔案目錄
|_ html 靜態頁目錄
nginx.exe 主程式
window下安裝Nginx極為簡單,解壓縮到一個無空格的英文目錄即可(個人習慣,擔心中文出問題),雙擊nginx啟動,這裡我安裝到:D:server目錄,下面涉及到的tomcat也安裝在此目錄。
DOS環境啟動
若果想停止nginx,dos環境運行指令:nginx -s stop
3、nginx.conf設定
Nginx設定檔預設在conf目錄,主要設定檔為nginx.conf,我們安裝在D:servernginx-0.8.20、預設主設定檔為D:servernginx-0.8.20nginx.conf。下面是nginx作為前端反向代理伺服器的設定。
Nginx.conf程式碼
proxy_buffers
432k; proxy_busy_buffers_size 64k;
第二處連接埠修改:
port=
"18081"protocol🎠connectionTimeout="20000"
Enginename="Catalina"defaultHost="localhost" cat的連接埠別重複,保證能啟動起來,另一個tomcat配置希捷省略,監聽埠為18080,附件中我們將上傳所有的設定資訊。 5、驗證設定與測試負載平衡
先測試nginx設定是否正確,測試指令:nginx -t (預設驗證:confnginx.conf),也可以指定設定檔路徑。
其次驗證tomcat,啟動兩個tomcat,不出現端口衝突即為成功(tomcat依賴的java等搞“挨踢”的就廢話不說了);
最後驗證配置負載平衡設置,http:// localhost/ 或http://localhost/index.jsp 。我修改了index.jsp頁面,增加日誌輸出訊息,以便於觀察。注意:左上角小貓頭上的:access tomcat2、access tomcat1。說明訪問了不同的tomcat。 至此window下nginx+tomcat負載平衡配置結束,關於tomcat Session的問題通常是採用memcached,或者採用nginx_upstream_jvm_route ,他是一個 Nginx 的擴展模組,用來實現基於 Cookie 的 Sessvm_route ,他是一個 Nginx 的擴展模組,用來實現基於 Cookie 的 Sessvmion Sticky 的功能。如果tomcat過多不建議session同步,server間互相同步session很耗資源,高並發環境容易造成Session風暴。請依照 自己應用情況合理採納session解決方案。
Ubuntu10.10環境:Nginx+Tomcat6
我們下面簡單說下ubuntu10.10下如何安裝設定
1. en/download.html ,linux版本:nginx-0.8.20.tar.。解壓縮指令:tar -zxvf nginx-0.8.20.tar.gz
2、編譯安裝NginxNginx依賴一些其他PCRE、openssl(依賴libsslbtu),自己依賴PCRE,只需安裝依賴的openssl,以下我們簡單說下如何安裝PCRE和openssl等
PCRE下載位址:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/Shell程式碼
tar zxvf pcre-8.01
8.01
cd pcre-8.01
du make installcp /mnt/fileshare/nginx-
0.8
niumd@niumd-laptop:/usr/local/nginx$ pwd
/usr/local/nginx停止:kill -訊號類型pid
nginx/logs目錄下一個nginx。 pid的文件,此文件記錄了每次執行的pid,也可以透過ps指令查詢。
訊號類型如下:
RERM.INT | |
重新加載載入日誌 | |
平滑升級執行程序 | |
從容關閉工作流程 | |