天天看點

nginx+tomcat負載均衡搭建

JDK安裝:

進入/usr目錄下,建立java檔案夾,mkdir java

nginx+tomcat負載均衡搭建

用rz指令上傳到java目錄下,并賦權限chmod 755 jdk-6u45-linux-i586.bin

./jdk-6u45-linux-i586.bin(注意,這個步驟一定要在jdk-6u45-linux-i586.bin所在目錄下,就是java目錄)

解壓完畢後在java目錄生成

nginx+tomcat負載均衡搭建

配置環境變量:

vi /etc/profile,添加如下内容在:

LANGUAGE=CN

export language

JAVA_HOME=/usr/java/jdk1.6.0_45

export JAVA_HOME

export PATH=$JAVA_HOME/bin:$PATH

添加完成後儲存并退出,讓/etc/profile檔案修改後立即生效,可以使用如下指令:source /etc/profile

java -version

nginx+tomcat負載均衡搭建

輸出版本證明jdk安裝成功

安裝依賴的軟體包:

yum  -y install  gcc

yum  -y install  pcre*           

yum  -y install  zlib

yum  -y install  zlib-devel

yum  -y install  openssl 

yum  -y install  openssl openssl--devel

Nginx安裝:

nginx+tomcat負載均衡搭建

用rz指令上傳到/usr/local目錄下

解壓:tar -zxvf nginx-1.3.15.tar.gz,解壓完畢後在/usr/local檔案夾下生成

nginx+tomcat負載均衡搭建

cd nginx-1.3.15

./configure --prefix=/usr/local/nginx

make

make install

退出nginx-1.3.15進入nginx,再進入sbin目錄,在sbin目錄下能看到nginx啟動檔案

nginx+tomcat負載均衡搭建

啟動nginx服務

nginx+tomcat負載均衡搭建

執行/usr/local/nginx/sbin/nginx -t

nginx+tomcat負載均衡搭建

測試ok,代表nginx安裝成功,關閉apache,因為apache和nginx公用80端口(如果沒安裝apache,這步不用執行)

關閉防火牆:service iptables stop,然後可以通過通路http://ip/看到nginx預設頁面

nginx+tomcat負載均衡搭建

Tomcat安裝:

在/usr/local目錄下,用rz指令将

nginx+tomcat負載均衡搭建

上傳到目前目錄/usr/local下,解壓指令如下:tar zxvf apache-tomcat-7.0.41.tar.gz,在/usr/local目錄下生成apache-tomcat-7.0.41檔案夾,同時拷貝兩個tomcat,命名為tomcat1,tomcat2

mv apache-tomcat-7.0.41 /usr/local/tomcat1

cp /usr/local/tomcat1  /usr/local/tomcat2 -r

nginx+tomcat負載均衡搭建

分别修改tomcat1和tomcat2 端口,這裡有三個端口需要修改,分别如下:

shutdown 端口:8005  主要負責啟動關閉

ajp端口:8009主要負責通過ajp均衡(常用于apache和tomcat整合)

http端口:8080可以通過web頁面直接通路(nginx+tomcat整合)

cd  tomcat1/conf,找到配置檔案server.xml,三個端口如下:

nginx+tomcat負載均衡搭建
nginx+tomcat負載均衡搭建
nginx+tomcat負載均衡搭建

如果tomcat1三個端口分别為:8005 8009 8080 ,那麼tomcat2端口在此基礎上都+1,即為:8006 8010 8081,一台伺服器上端口不能重複,否則會報錯,cd  tomcat2/conf,找到配置檔案server.xml

nginx+tomcat負載均衡搭建
nginx+tomcat負載均衡搭建
nginx+tomcat負載均衡搭建

将上圖中8005 8009 8080端口分别改成8006 8010 8081,修改完成後儲存并退出

然後啟動兩個tomcat,啟動指令為: /usr/local/tomcat1/bin/startup.sh,/usr/local/tomcat2/bin/startup.sh,啟動後,使用netstat -tnl,可以看到6個端口

nginx+tomcat負載均衡搭建

即代表tomcat1,tomcat2成功啟動

使用http://ip:8080通路tomcat預設頁面

nginx+tomcat負載均衡搭建

使用http://ip:8081通路tomcat預設頁面

nginx+tomcat負載均衡搭建

如果需要修改tomcat釋出目錄為自己制定的目錄,需要做如下調整,建立兩個釋出目錄:

在usr目錄下運作下面的指令,mkdir -p /usr/webapps/{www1,www2}

執行完指令後進入webapps目錄下

nginx+tomcat負載均衡搭建

可以看到建立好的兩個釋出目錄www1和www2

編輯vi /usr/local/tomcat1/conf/server.xml,在最後</Host>前一行加入以下内容:<Context  path=""  docBase="/usr/webapps/www1" reloadable="false"/>

nginx+tomcat負載均衡搭建

儲存并退出

編輯vi /usr/local/tomcat2/conf/server.xml,在最後</Host>前一行加入以下内容:<Context  path=""  docBase="/usr/webapps/www2" reloadable="false"/>

nginx+tomcat負載均衡搭建

儲存并退出

在/usr/webapps/www1目錄下,建立jsp檔案,使用指令:touch test.jsp,在www1目錄下看見剛被建立的test.jsp檔案

nginx+tomcat負載均衡搭建

編輯test.jsp檔案的内容,

nginx+tomcat負載均衡搭建

将下面的内容複制到test.jsp檔案中,儲存并退出

nginx+tomcat負載均衡搭建

在/usr/webapps/www2目錄下,建立jsp檔案,使用指令:touch test.jsp,在www2目錄下看見剛被建立的test.jsp檔案

nginx+tomcat負載均衡搭建

編輯test.jsp檔案的内容,

nginx+tomcat負載均衡搭建

将下面的内容複制到test.jsp檔案中,儲存并退出

nginx+tomcat負載均衡搭建

重新開機tomcat1:

在/usr/local/tomcat1/bin目錄下,先執行./shutdown.sh,然後執行./startup.sh,在浏覽器裡通路http://192.168.2.199:8080/test.jsp,看到如下:

nginx+tomcat負載均衡搭建

證明tomcat1啟動正常,部署的頁面可以顯示

重新開機tomcat2:

在/usr/local/tomcat2/bin目錄下,先執行./shutdown.sh,然後執行./start.sh,在浏覽器裡通路http://192.168.2.199:8081/test.jsp,看到如下:

nginx+tomcat負載均衡搭建

證明tomcat2啟動正常,部署的頁面可以顯示

nginx+tomcat整合:

整合主要是修改nginx.conf配置,給一個完整的nginx.conf線上配置,部分參數可以自己根據實際需求修改:cd  /usr/local/nginx/conf,找到nginx.conf,useradd www www(一個使用者名,一個使用者組)

nginx+tomcat負載均衡搭建
nginx+tomcat負載均衡搭建
nginx+tomcat負載均衡搭建
nginx+tomcat負載均衡搭建

上圖中紅框裡是已經修改過的地方,修改完後儲存并退出

測試nginx配置是否成功,如果兩次重新整理浏覽器有不同結果,則證明配置成功(前提已啟動兩個tomcat)

nginx+tomcat負載均衡搭建
nginx+tomcat負載均衡搭建

如上配置,nginx+tomcat反向代理負載均衡配置完畢

nginx正向代理是Web容器,反向代理是負載均衡

不管替換nginx配置檔案還是替換後端服務,不需要重新開機服務, nginx -s reload操作即可,老的請求用老的配置檔案處理,新的請求用新的配置檔案處理,老的請求處理完之後最後切換到新的配置檔案

伺服器性能處理能力一緻用輪詢,伺服器性能處理能力不一緻用權重,ip_hash,URL_hash,fair第三方

nginx配置檔案(nginx.conf):

nginx+tomcat負載均衡搭建

#user nobody # nginx父程序啟動了一個子程序,它是以nobody啟動的

nginx單程序單線程worker_processes 1,設定和cpu核數一緻

worker_connections  1024;  # 單個程序處理多少請求,最大連接配接數

http->include mime.types; # 引入的檔案mime.types,它是映射的檔案

http->default_type application/octet-stream(在mime.types裡)

sendfile        on;  # 發送檔案的開關,高效傳輸檔案

keepalive_timeout ; # 長連接配接的逾時時間

server->listen 80  # 監聽80端口

server->server_name  localhost # 服務名,也可以叫别的名字,外層是http,經過多個server,每個server可以有不同的路徑

server->location  / {root html;                                  # 以root身份找到nginx下的html路徑

                                 index index.html index.htm}   # 預設的index下有多個檔案,以/分隔,如果想把别的路徑加進來,可以在這行後面再加路徑,按照順序選,找到哪個是哪個,優先顯示第一個

error_page 500 502 503 504 /50x.html;  # 錯誤頁面的傳回碼,在/50x.html頁面下可以看到

location =  /50x.html {root  html;}  #  /50x.html在root下的html目錄下

在nginx.conf配置檔案下增加如下shell腳本,添加到server下,location /的下面:

location /status{stub_status  on;

                          access_log off;

                          allow 127.0.0.1;

                          deny all;   # 預設會把這行注釋掉

                        }

nginx+tomcat負載均衡搭建

修改配置檔案,用./nginx -s reload指令重新開機服務,./nginx -V可以檢視版本以及安裝時配置的參數

use epoll; # 使用異步IO,效率高于同步IO,高并發

upstream後面跟着服務,server下的server_name也要改成服務,如下圖:

nginx+tomcat負載均衡搭建

下面這四行直接拿過來就行,主要關注第一行,nginx會代理轉發到有效的server下,最終nginx請求的是http://127.0.0.1:9090/bbs,直接替換服務

nginx+tomcat負載均衡搭建

--with-http_stub_status_module # 監控nginx有多少個請求隊列

轉載于:https://www.cnblogs.com/laosun0204/p/8735009.html