1、爲何須要對Tomcat服務器作負載均衡?
Tomcat服務器做爲一個Web服務器,其併發數在300-500之間,若是超過500的併發數會出現Tomcat不能響應新的請求的狀況,嚴重影響網站的運行。同時若是訪問量很是大的狀況下,Tomcat的線程數會不斷增長。所以會佔據大量內存,嚴重時出現內存溢出的現象,這時須要重啓Tomcat以釋放內存,阻斷了網站的運行。
因此對Tomcat作負載均衡便頗有必要。目前能夠和Tomcat作負載均衡的主流服務器是Apache,可是Nginx因爲功能多、配置簡單等優勢成爲不少負載均衡服務器的首選。Nginx的併發數可達到50000,因此理論上能夠和Tomcat以1:100的比例來配置,這邊能夠很好的解決網站併發瓶頸問題。 php
2、Nginx+Tomca在Windows下負載均衡的配置:
先秀一下個人環境: Nginx1.3.11 + Tomcat 6.0(2個)、Win 7。
下面是配置過程:
一、將nginx-1.3.11.rar直接解壓到D:盤。
二、將apache-tomcat-6.0.26.rar解壓到D:盤,既然是作負載均衡將tomcat拷貝兩份,分別命名tomcat_一、tomcat_2。
三、將要發佈的項目部署分別部署到兩個Tomcat根目錄下的webapps下,保證兩個Tomcat下的項目名相同。
四、修改tomcat_2的配置文件,該配置文件位於/conf下,文件名爲server.xml, 修改其中的<Server port="8005" shutdown="SHUTDOWN"> 爲<Server port="8006" shutdown="SHUTDOWN">,修改其中的 html
<Connector port="8080 protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/>爲
<Connector port="8088 protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/>
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />(ajp是一個協議,tomcat能夠用來服務器集羣,也能夠在csdn找到更詳細的ajp資料)爲
<Connector port="7009" protocol="AJP/1.3" redirectPort="8443" />
五、修改Nginx配置文件nginx.conf,該文件位於Nginx根目錄下的/conf目錄下
a、在#gzip on;後面加入下面配置: nginx
upstream localhost { server localhost:8080 weight=5; server localhost:8080 weight=5; ip_hash; }
location / { root html; index index.html index.htm; }改成:
location / { root html; index index.html index.htm; proxy_pass http://localhost; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 10m; client_body_buffer_size 128k; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; }其中proxy_pass參數和upstream localhost{}對應。
通過上面這些步驟,負載均衡配置完成,下面分別啓動tomcat_一、tomcat_2,而後雙擊nginx根目錄下nginx.exe文件或者使用start nginx啓動(關閉是: nginx -s stop),打開瀏覽器,輸入地址: http://localhost即可看到tomcat的首頁了。 web
瞭解更多關於Nginx的配置: http://www.howtocn.org/doku.php apache