1. 程式人生 > >Linux下nginx+多個Tomcat負載均衡的實現

Linux下nginx+多個Tomcat負載均衡的實現

java 負載 均衡 bootstra 火墻 瀏覽器 startup 顯示 tomcat的配置

由於項目需要,共創建了10個Tomcat端,由nginx負責轉發。9個Tomcat端口分別是8080,11000,12000,13000,14000,15000,16000,17000,18000,19000.

nginx配置:upstream Tomcat {

server xxx.xxx.xx.xxx:8080

server xxx.xxx.xx.xxx:11000

...以此類推

}

server配置:

server{

if ( $uri = ‘/‘ ){
rewrite .* / break;
}
location / {
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;
proxy_pass http://tomcat;
}

server{

if ( $uri = ‘/‘ ){
rewrite .* / break;
}
location / {
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;
proxy_pass http://tomcat;
}

...依次類推

}

其他類似。主要是Tomcat這裏配置比較繁瑣。

1,下載jdk安裝包,這裏下載的是1.8版本的。

2,解壓。

3,安裝路徑在/usr/java目錄中

4,環境變量的配置:

vim /etc/profile進入編輯:

export JAVA_HOME=/usr/java/jdk1.8.0_131
export JRE_HOME=/usr/java/jdk1.8.0_131/jre
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:/usr/local/nginx/sbin:/usr/local/php/bin:/usr/local/mysql/bin:$PATH

添加完成之後source /etc/profile使其生效。

檢測:在命令行輸入Java -version即可看到JDK版本等信息,表示安裝成功。接著是Tomcat的配置。

tomcat:

1,下載安裝包,這裏下載的是apache-tomcat-8.5.15.tar.gz。

2,解壓安裝腳本:

for i in crm dz jz tb wm xyg yg yj lcb gw
do
cd /usr/local
tar -zxf apache-tomcat-8.5.15.tar.gz
mv -f apache-tomcat-8.5.15 /usr/local/tomcat/"${i}" #生成10個Tomcat端
cd /usr/local/tomcat/"${i}"/bin/
cat >> catalina.sh <<EOF #這裏的代碼主要是配置每個Tomcat端的啟動腳本的環境變量
export CATALINA_BASE=‘’$CATALINA‘_BASE_"${i}"
export CATALINA_HOME=‘$CATALINA‘_HOME_"${i}"
EOF
cat >> /etc/profile <<EOF #這裏的代碼主要是配置這10個Tomcat端的環境變量

#“${i}”

CATALINA_BASE_"${i}"=/usr/local/tomcat/"${i}"
CATALINA_HOME_"${i}"=/usr/local/tomcat/"${i}"
export CLASSPATH=.:${CATALINA_HOME_"${i}"}/bin/tomcat-juli.jar:${CATALINA_HOME_"${i}"}/bin/bootstrap.jar
export CATALINA_BASE_"${i}" CATALINA_HOME_"${i}"

EOF
done

crm dz jz tb wm xyg yg yj lcb gw這些是項目中的名稱,可以不用去管他,你也可以自己取名

接下來,配置每個Tomcat的端口。稍後我會上傳自動替換腳本。

進入每一個Tomcat端的conf目錄下,cd /usr/local/tomcat/項目名稱/conf

vim server.xml

修改3處:

1)<Server port="8005" shutdown="SHUTDOWN"> port端口號

2)<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> port端口號

3) <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> port端口號

之後:cd ../bin/

修改:

vim catalina.sh

查找到:setclasspath這個名稱。命令:/setclasspath

修改$CATALINA_HOME+你項目名稱(要對應),註意這裏要修改setclasspath這個名稱前所有的$CATALINA_HOME

esc,:wq保存並退出。

至此,配置基本完成。

最後,進入到bin目錄下,先./shutdown.sh,然後再./startup.sh就成功啟動了

如果網頁顯示拒絕的話,那麽很有可能是防火墻拒絕了,要添加規則

vim /etc/sysconfig/iptables

-A INPUT -p tcp -m state --state NEW -m tcp --dport 端口號 -j ACCEPT

或者

-A INPUT -s 你的IP地址 -j ACCEPT

在瀏覽器地址欄中輸入http://localhost:端口,即可訪問,默認應該是Tomcat自帶目錄,一只小貓。

Linux下nginx+多個Tomcat負載均衡的實現