目標:Nginx做為HttpServer,串連多個tomcat應用執行個體,進行負載平衡。
註:本常式以一台機器為例子,即同一台機器上裝一個nginx和2個Tomcat且安裝了JDK1.7。
1、安裝Nginx
安裝Nginx教程
2、配置兩個Tomcat
在本機上配置兩個Tomcat,分別為tomcat7-8081、tomcat7-8082。
tomcat7-8081訪問地址:http://localhost:8081,瀏覽顯示內容:this is 8081 port
tomcat7-8082訪問地址:http://localhost:8082,瀏覽顯示內容:this is 8082 port
D:\div\tomcat7-8081\webapps\ROOT\index.jsp檔案內容為:
<!DOCTYPE html><html lang="en"> <head>this is 8081 port</head></html>
D:\div\tomcat7-8082\webapps\ROOT\index.jsp檔案內容為:
<!DOCTYPE html><html lang="en"> <head>this is 8082 port</head></html>
在同一台伺服器上配置多個Tomcat教程
如果要在一台伺服器上配置多個Tomcat,主要就是要避免Tomcat伺服器的連接埠衝突的問題。只需要修改CATALINA_HOME\conf\server.xml中的啟動連接埠和串連連接埠就OK了!
下面我們把配置的詳細過程寫在下面,以供參考:(此例以配置三個Tomcat為例)1. 下載apache-tomcat-7.0.63,下載下來的檔案為apache-tomcat-7.0.63.zip.2. 解壓該壓縮包到D:/div/目錄下。3. 修改解壓檔案夾名字為:tomcat7-80804. 在D:/div/目錄下建立該檔案夾的兩個副本,分別更名為:tomcat7-8081、tomcat7-80825. 添加環境變數:按右鍵我的電腦->選擇屬性->選擇進階->選擇環境變數:添加系統變數:CATALINA_HOME_8080,其值為:D:\div\tomcat7-8080;CATALINA_HOME_8081,其值為:D:\div\tomcat7-8081;CATALINA_HOME_8082,其值為:D:\div\tomcat7-8082;6. 修改啟動連接埠和關閉連接埠:進入D:\div\tomcat7-8081\conf\目錄,開啟server.xml檔案,修改下面兩個地方:(1)<Server port="8006" shutdown="SHUTDOWN">修改這個port=”8006”,原來預設的為:8005,使得它的關閉連接埠和另一個關閉連接埠不發生衝突。(2)<Connector port="8081" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" />修改port=”8081”,原來預設的為“8080”,使得它的串連連接埠和另一個不衝突。(3)<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />修改這個port=”8010”,原來預設的為:8009,AJP 1.3 Connector定義的地方。7. 修改startup.bat和catalina.bat檔案內容:(1) 開啟D:\div\tomcat7-8081\bin\startup.bat檔案,把其中所有CATALINA_HOME替換為CATALINA_HOME_8081。(2) 開啟D:\div\tomcat7-8081\bin\catalina.bat檔案,把其中所有CATALINA_HOME替換為CATALINA_HOME_8081。tomcat7-8082配置方法跟配置tomcat7-8081步驟一樣的。8.啟動Tomcat,在命令列下分別進入三個不同的Tomcat安裝目錄下,執行startup.bat,分別啟動三個Tomcat。然後在瀏覽器中輸入:http://localhost:8080http://localhost:8081 http://localhost:8082 9. 至此,我們已經在一台伺服器上配置了三個Tomcat。
這樣我們就成功的搭建了一個nginx服務,成功的配置了兩個tomcat應用執行個體。
3、Nginx+Tomcat負載平衡配置
這裡只需要修改Nginx的配置,讓它通過tomcat來轉寄。
a、nginx.conf設定檔
worker_processes 1;events { worker_connections 1024;}http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 10; include extra/upstream01.conf;}
b、extra/upstream01.conf檔案,負載平衡配置資訊
upstream mysite { server localhost:8081 weight=5; server localhost:8082 weight=5;} server { listen 80; server_name localhost; location / { proxy_pass http://mysite; }}
當有請求到localhost時,請求會被分發到對應的upstream設定的伺服器列表上,每一次請求分發的伺服器都是隨機的。
接著在運行一次start nginx,當你不斷重新整理http://localhost的時候,瀏覽器上就會來回切換"this is 8081 port"和"this is 8082 port"。
這樣說明負載平衡配置成功了!!!!!!