Tomcat+Nginx搭建集群

jopen 8年前發布 | 20K 次閱讀 Web服務器

Nginx配置過程如下:

 

(1)到Nginx官網下載Nginx的Windows版本:點擊打開鏈接(這里我們使用nginx/Windows-1.4.7版本進行實驗)

(2)解壓到磁盤任意目錄,例如這里我解壓到虛擬機1中:C:\software\nginx-1.4.7

(3)啟動、停止和重新加載服務:通過cmd以守護進程方式啟動nginx.exe:start nginx.exe,停止服務:nginx-s stop,重新加載配置:nginx -s  reload

 

修改Nginx核心配置文件nginx.conf

(1)進程數與每個進程的最大連接數:

      ?nginx進程數,建議設置為等于CPU總核心數

      ?單個進程最大連接數,那么該服務器的最大連接數=連接數*進程數



(2)Nginx的基本配置:

      ?監聽端口一般都為http端口:80;

      ?域名可以有多個,用空格隔開:例如 server_name www.sohu.com baidu.com;



(3)負載均衡列表基本配置:

?location/ {}:對什么樣的后綴進行負載均衡請求,假如我們要對所有的aspx后綴的文件進行負載均衡時,可以這樣寫:location ~ .*\.aspx$ {}

?proxy_pass:請求轉向自定義的服務器列表,這里我們將請求都轉向標識為http://netitcast.com;的負載均衡服務器列表;




?在負載均衡服務器列表的配置中,weight是權重,可以根據機器配置定義權重(如果某臺服務器的硬件配置十分好,可以處理更多的請求,那么可以為其設置一個比較高的weight;而有一臺的服務器的硬件配置比較差,那么可以將前一臺的weight配置為weight=2,后一臺差的配置為weight=1)。weigth參數表示權值,權值越高被分配到的幾率越大;




以上僅僅是nginx的基礎配置

 

測試說明:


分別向兩臺虛擬機中的tomcat服務器中部署hjy.war這個web項目(為了以示訪問的是不同的web服務器,我們的兩臺虛擬機中部署的hjy這個項目在頁面顯示上略有不同),虛擬機1中,頁面顯示test1,虛擬機2中頁面顯示test2

注:1254是虛擬機1,配置的權重為2,

2nginx部署到254這臺機子上了

 

啟動nginx,并啟動兩臺虛擬機的tomcat




運行結果:

 

訪問nginx:http://localhost/hjy/test.jsp


由于權重的不同,在我們不斷刷新頁面的過程中,顯示test1的可能性會大一些

 

擴展:添加Nginx對于靜態文件的緩存配置

 

為了提高響應速度,減輕真實服務器的負載,對于靜態資源我們可以在反向代理服務器中進行緩存,這也是反向代理服務器的一個重要的作用。


(1)緩存靜態資源之圖片文件

root/nginx-1.4.7/staticresources/image:對于配置中提到的jpg/png等文件均定為到/nginx-1.4.7/staticresources/image文件夾中進行尋找匹配并將文件返回;

expires7d:過期時效為7天,靜態文件不怎么更新,過期時效可以設大一點,如果頻繁更新,則可以設置得小一點;

tips:下面的樣式、腳本緩存配置同這里一樣,只是定位的文件夾不一樣而已,不再贅述。



(2)緩存靜態資源之樣式文件



(3)緩存靜態資源之腳本文件



(4)在nginx服務文件夾中創建靜態資源文件夾,并要緩存的靜態文件拷貝進去:這里我主要將Web程序中用到的image、css以及js文件拷貝了進去;



(5)總結:通過配置靜態文件的緩存設置,對于這些靜態文件的請求可以直接從反向代理服務器中直接返回,而無需再將這些靜態資源請求轉發到具體的Web服務器進行處理了,可以提高響應速度,減輕真實Web服務器的負載壓力。

 

總結:


本文中我們使用Nginx在Windows環境下搭建了一個反向代理服務,并模擬了一個Tomcat服務器集群的負載均衡效果。從這個demo中,我們可以簡單地感受到反向代理為我們所做的事情,并體會負載均衡是怎么一回事。


附:


每次以cmd方式啟動Nginx服務不符合實際要求,于是我們想到將其注冊為Windows服務,并設置為自動啟動模式。這里,我們使用一個不錯的小程序:“WindowsService Wrapper”,將nginx.exe注冊為Windows服務,具體的步驟如下:

①下載最新版的 Windows Service Wrapper 程序,比如我下載的名稱是 “winsw-1.8-bin.exe”(本文底部有下載地址),然后把它命名成你想要的名字(比如:“nginx-service.exe”,當然,你也可以不改名)

②將重命名后的 nginx-service.exe 復制到 nginx 的安裝目錄(比如,我這里是 “D:\Servers\nginx-1.4.7″

③在同一個目錄下創建一個Windows Service Wrapper XML配置文件,名稱必須與第一步重命名時使用的名稱一致(比如我這里是 “nginx-service.xml”,  如果,你沒有重命名,則應該是 “winsw-1.8-bin.xml”),這個XML的內容如下:

<?xmlversion="1.0" encoding="UTF-8"?>
<service>
<id>nginx</id>
<name>Nginx Service</name>
<description>High Performance NginxService</description>
<executable>D:\Servers\nginx-1.4.7\nginx.exe</executable>
<logpath>D:\Servers\nginx-1.4.7\</logpath>
<logmode>roll</logmode>
<depend></depend>
<startargument>-p D:\Servers\nginx-1.4.7</startargument>
<stopargument>-p D:\Servers\nginx-1.4.7 -sstop</stopargument>
</service>

④在命令行下執行以下命令,以便將其注冊成Windows服務:nginx-service.exe install

⑤接下來就可以在Windows服務列表看到Nginx服務了,這里我們可以將其設置為自動啟動了:




(5)總結:在Windows環境中,要對外提供的Windows服務一般都要將其啟動類型設置為自動。




來自: http://blog.csdn.net/hejingyuan6/article/details/47262419

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!