Tomcat多實例與負(fù)載均衡示例詳解
一、Tomcat多實例
1.1 安裝好 jdk
在部署 Tomcat 之前必須安裝好 jdk,因為 jdk 是 Tomcat 運行的必要環(huán)境。
1. #關(guān)閉防火墻 systemctl stop firewalld systemctl disable firewalld setenforce 0 2. #將安裝 Tomcat 所需軟件包傳到/opt目錄下 apache-tomcat-9.0.16.tar.gz jdk-8u201-linux-x64.rpm 3. #切換至/opt下,安裝JDK cd /opt rpm -ivh jdk-8u201-linux-x64.rpm ? 4. #查看java版本 java -version
關(guān)閉防火墻
將安裝 Tomcat 所需軟件包傳到/opt目錄下
切換至/opt下,安裝JDK
查看java版本
1.2 安裝 tomcat
1. #切換至/opt下,解壓tomcat包 cd /opt tar -zxf apache-tomcat-9.0.16.tar.gz ? 2. #新建文件夾/usr/local/tomcat mkdir /usr/local/tomcat 3. #將解壓后的包拷貝至/usr/local/下并重命名 cp -a apache-tomcat-9.0.16 /usr/local/tomcat/tomcat1 cp -a apache-tomcat-9.0.16 /usr/local/tomcat/tomcat2
切換至/opt下,解壓tomcat包
新建文件夾/usr/local/tomcat
將解壓后的包拷貝至/usr/local/下并重命名
1.3 配置 tomcat 環(huán)境變量
vim /etc profile ? export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64 export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar export PATH=$JAVA_HOME/bin:$PATH
1.4修改tomcat2中的主配置文件
vim /usr/local/tomcat/tomcat2/conf/server.xml ? 22 <Server port="8006" shutdown="SHUTDOWN"> 69 ? ? <Connector port="8081" protocol="HTTP/1.1" 116 ? ? <Connector port="8010" protocol="AJP/1.3" redirectPort="8443" /> ?
1.5修改啟動腳本和關(guān)閉腳本
1. #修改tomcat1的/usr/local/tomcat/tomcat1/bin/startup.sh vim /usr/local/tomcat/tomcat1/bin/startup.sh ? export CATALINA_HOME1=/usr/local/tomcat/tomcat1 export CATALINA_BASE1=/usr/local/tomcat/tomcat1 export TOMCAT_HOME1=/usr/local/tomcat/tomcat1 ? 2. #修改tomcat1 的/usr/local/tomcat/tomcat1/bin/shutdown.sh vim /usr/local/tomcat/tomcat1/bin/shutdown.sh ? export CATALINA_HOME1=/usr/local/tomcat/tomcat1 export CATALINA_BASE1=/usr/local/tomcat/tomcat1 export TOMCAT_HOME1=/usr/local/tomcat/tomcat1 ? ? 3. #修改tomcat2的/usr/local/tomcat/tomcat2bin/startup.sh vim /usr/local/tomcat/tomcat2/bin/startup.sh ? export CATALINA_HOME1=/usr/local/tomcat/tomcat2 export CATALINA_BASE1=/usr/local/tomcat/tomcat2 export TOMCAT_HOME1=/usr/local/tomcat/tomcat2 ? 4. #修改tomcat2的/usr/local/tomcat/tomcat2/bin/shutdown.sh vim /usr/local/tomcat/tomcat2/bin/shutdown.sh ? export CATALINA_HOME1=/usr/local/tomcat/tomcat2 export CATALINA_BASE1=/usr/local/tomcat/tomcat2 export TOMCAT_HOME1=/usr/local/tomcat/tomcat2 ?
修改tomcat1的/usr/local/tomcat/tomcat1/bin/startup.sh
修改tomcat1 的/usr/local/tomcat/tomcat1/bin/shutdown.sh
修改tomcat2的/usr/local/tomcat/tomcat2bin/startup.sh
修改tomcat2的/usr/local/tomcat/tomcat2/bin/shutdown.sh :
1.6啟動tomcat并查看
1. #啟動tomcat1 cd /usr/local/tomcat/ ./tomcat1/bin/startup.sh ? 2. #啟動tomcat2 ./tomcat2/bin/startup.sh ? 3. #查看是否啟動成功 ss -ntap|grep java http://192.168.59.118:8080/
啟動tomcat1、tomcat2
查看是否啟動成功
二、Nginx+Tomcat負(fù)載均衡、動靜分離
- standalone模式,Tomcat單獨運行,直接接受用戶的請求,不推薦。
反向代理,單機運行,提供了一個Nginx作為反向代理,可以做到靜態(tài)由nginx提供響應(yīng),動態(tài)jsp
代理給Tomcat
- LNMT:Linux + Nginx + MySQL + Tomcat
LAMT:Linux + Apache(Httpd)+ MySQL + Tomcat
前置一臺Nginx,給多臺Tomcat實例做反向代理和負(fù)載均衡調(diào)度,Tomcat上部署的純動態(tài)頁面更
適合
LNMT:Linux + Nginx + MySQL + Tomcat
- 多級代理
LNNMT:Linux + Nginx + Nginx + MySQL + Tomcat
動態(tài)服務(wù)器的問題,往往就是并發(fā)能力太弱,往往需要多臺動態(tài)服務(wù)器一起提供服務(wù)。如何把并發(fā)的壓力分?jǐn)?,這就需要調(diào)度,采用一定的調(diào)度策略,將請求分發(fā)給不同的服務(wù)器,這就是Load Balance負(fù)載均衡。
當(dāng)單機Tomcat,演化出多機多級部署的時候,一個問題便凸顯出來,這就是Session。而這個問題的由來,都是由于HTTP協(xié)議在設(shè)計之初沒有想到未來的發(fā)展。
2.1 部署Nginx 負(fù)載均衡器
環(huán)境簡介:
ngnix:192.168.59.108
tomcat1:192.168.59.105
tomcat2: 192.168.59.118
1. #關(guān)閉防火墻 systemctl stop firewalld setenforce 0 ? 2. #安裝依賴關(guān)系包 yum -y install pcre-devel zlib-devel gcc gcc-c++ make ? 3. #新建用戶和組便于管理 useradd -M -s /sbin/nologin nginx ? 4. #切換至opt目錄,將下載好的壓縮包傳進來解壓 cd /opt tar -zxf nginx-1.12.0.tar.gz ? 4. #切換至解壓后的目錄下編譯 cd nginx-1.12.0 ? ./configure
–prefix=/usr/local/nginx
–user=nginx
–group=nginx
–with-http_stub_status_module
?
5. #安裝
make && make install -j4
?
6. #做軟連接,讓系統(tǒng)識別nginx的操作命令
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
?
7. #將nginx命令加入服務(wù)
cd /lib/systemd/system
vim nginx.service
#!/bin.bash
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/bin/kill -s HUP $MAINPID
ExecStop=/usr/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
?
8. #重新加載單元.啟動服務(wù)
systemctl daemon-reload
systemctl start nginx
?
9. #查看是否成功啟動
ss -ntap|grep nginx
http://192.168.59.108/
關(guān)閉防火墻
安裝依賴關(guān)系包
新建用戶和組便于管理
切換至opt目錄,將下載好的壓縮包傳進來
切換至解壓后的目錄下編譯
安裝
做軟連接,讓系統(tǒng)識別nginx的操作命令
將nginx命令加入服務(wù)
重新加載單元.啟動服務(wù)
查看是否成功啟動
2.2部署第一臺Tomcat
192.168.59.105
1. #關(guān)閉防火墻 systemctl stop firewalld setenforce 0 ? 2. #切換至/opt,將安裝 Tomcat 所需軟件包傳到/opt目錄下 apache-tomcat-9.0.16.tar.gz jdk-8u201-linux-x64.rpm ? 3. #安裝JDK rpm -ivh jdk-8u201-linux-x64.rpm ? 4. #修改換將變量配置文件 vim /etc/profile export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64 export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar export PATH=$JAVA_HOME/bin:$PATH ? 5. #刷新配置文件 source /etc/profile ? 6. #切換至/opt下,解壓tomcat包 cd /opt tar -zxf apache-tomcat-9.0.16.tar.gz ? 7. #將解壓后的包拷貝至/usr/local/下并重命名 cp -r apache-tomcat-9.0.16 /usr/local/tomcat ? 8. #添加用戶設(shè)置屬主屬組 useradd -s /sbin/nologin tomcat chown tomcat:tomcat /usr/local/tomcat -R ? ? 9. #新建服務(wù)文件 vim /etc/systemd/system/tomcat.service [Unit] Description=Tomcat #After=syslog.target network.target remote-fs.target nss-lookup.target After=syslog.target network.target ? [Service] Type=forking ExecStart=/usr/local/tomcat/bin/startup.sh ExecStop=/usr/local/tomcat/bin/shutdown.sh RestartSec=3 PrivateTmp=true User=tomcat Group=tomcat ? [Install] WantedBy=multi-user.target ? 10. #重新加載服務(wù),并開啟,查看是否成功啟動 ? systemctl daemon-reload systemctl start tomcat ss -ntap |grep 8080 ? ? ? #############新建動態(tài)頁面站點###########3 ? 11. #切換至webapp下,新建test目錄 cd /usr/local/tomcat/webapps/ mkdir test ? 12. #建立動態(tài)頁面文件 vim test/index.jsp <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <html> <head> ? ? <title>JSP test1 page </title> </head> <body> ? ? <% out.println("動態(tài)頁面1,http://www.test1.com");%> </body> </html> ? 13. #修改主配置文件 vim /usr/local/tomcat/conf/server.xml 刪除原來的站點模塊 添加 <Host name="localhost" appBase="webapps" ? ? ? ? ? ?unpackWARs="true" autoDeploy="true" xmlValidation="false" ? ? ? ? ? ?xmlNamespaceAware="false"> ? ? ? ? ? ? ? <Context docBase="/usr/local/tomcat/webapps/test" ? ? ? ? ? ? ? ?path="" reloadable="true" /> ? ? </Host> ? ? 14. #重啟服務(wù),并在網(wǎng)頁測試 systemctl restart tomcat.service http://192.168.59.105:8080/
關(guān)閉防火墻
切換至/opt,將安裝 Tomcat 所需軟件包傳到/opt目錄下
安裝JDK
修改換將變量配置文件
刷新配置文件
切換至/opt下,解壓tomcat包
將解壓后的包拷貝至/usr/local/下并重命名
添加用戶設(shè)置屬主屬組
新建服務(wù)文件
重新加載服務(wù),并開啟,查看是否成功啟動
切換至webapp下,新建test目錄
建立動態(tài)頁面文件
修改主配置文件
重啟服務(wù),并在網(wǎng)頁測試
2.3部署第二臺Tomcat
1. #關(guān)閉防火墻 systemctl stop firewalld setenforce 0 ? 2. #切換至/opt,將安裝 Tomcat 所需軟件包傳到/opt目錄下 apache-tomcat-9.0.16.tar.gz jdk-8u201-linux-x64.rpm ? 3. #安裝JDK rpm -ivh jdk-8u201-linux-x64.rpm ? 4. #修改環(huán)境變量配置文件 vim /etc/profile export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64 export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar export PATH=$JAVA_HOME/bin:$PATH ? 5. #刷新配置文件 source /etc/profile ? 6. #切換至/opt下,解壓tomcat包 cd /opt tar -zxf apache-tomcat-9.0.16.tar.gz ? 7. #將解壓后的包拷貝至/usr/local/下并重命名 cp -r apache-tomcat-9.0.16 /usr/local/tomcat ? 8. #添加用戶設(shè)置屬主屬組 useradd -s /sbin/nologin tomcat chown tomcat:tomcat /usr/local/tomcat -R ? ? 9. #新建服務(wù)文件 vim /etc/systemd/system/tomcat.service [Unit] Description=Tomcat #After=syslog.target network.target remote-fs.target nss-lookup.target After=syslog.target network.target ? [Service] Type=forking ExecStart=/usr/local/tomcat/bin/startup.sh ExecStop=/usr/local/tomcat/bin/shutdown.sh RestartSec=3 PrivateTmp=true User=tomcat Group=tomcat ? [Install] WantedBy=multi-user.target ? 10. #重新加載服務(wù),并開啟,查看是否成功啟動 ? systemctl daemon-reload systemctl start tomcat ss -ntap |grep 8080 ? ? ? #############新建動態(tài)頁面站點###########3 ? 11. #切換至webapp下,新建test目錄 cd /usr/local/tomcat/webapps/ mkdir test ? 12. #建立動態(tài)頁面文件 vim test/index.jsp <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <html> <head> ? ? <title>JSP test2 page </title> </head> <body> ? ? <% out.println("動態(tài)頁面2,http://www.test2.com");%> </body> </html> ? 13. #修改主配置文件 vim /usr/local/tomcat/conf/server.xml 刪除原來的站點模塊 添加 <Host name="localhost" appBase="webapps" ? ? ? ? ? ?unpackWARs="true" autoDeploy="true" xmlValidation="false" ? ? ? ? ? ?xmlNamespaceAware="false"> ? ? ? ? ? ? ? <Context docBase="/usr/local/tomcat/webapps/test" ? ? ? ? ? ? ? ?path="" reloadable="true" /> ? ? </Host> ? ? 14. #重啟服務(wù),并在網(wǎng)頁測試 systemctl restart tomcat.service http://192.168.59.105:8080/
關(guān)閉防火墻
切換至/opt,將安裝 Tomcat 所需軟件包傳到/opt目錄下
安裝JDK
修改環(huán)境變量配置文件
刷新配置文件
切換至/opt下,解壓tomcat包
將解壓后的包拷貝至/usr/local/下并重命名
添加用戶設(shè)置屬主屬組
新建服務(wù)文件
重新加載服務(wù),并開啟,查看是否成功啟動
切換至webapp下,新建test目錄
建立動態(tài)頁面文件
修改主配置文件
重啟服務(wù),并在網(wǎng)頁測試
2.4nginx 配置
準(zhǔn)備靜態(tài)頁面和圖片
1. #切換至/usr/local/nginx/html/目錄下 cd /usr/local/nginx/html/ ? 2. #創(chuàng)建test文件夾,并在里面創(chuàng)建靜態(tài)網(wǎng)頁 mkdir test cd test vim test.html this is static test web !! ? 3. #拖一張圖片至test下改名為1.jpg mv 1.jfif 1.jpg ? 4. #配置主配置文件 vim /usr/local/nginx/conf/nginx.conf ? #配置負(fù)載均衡服務(wù)器列表,weight參數(shù)表示權(quán)重,權(quán)重越高,被分配到的概率越大 ? #gzip on; ? ? upstream tomcat_server { ? ? ? ? ? ? ? ? ? server 192.168.59.105:8080 weight=1; ? ? ? ? ? ? ? ? ? server 192.168.59.118:8080 weight=1; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #動靜分離 location ~ .*.jsp$ { ? ? ? ? proxy_pass http://tomcat_server; ? ? ? ? proxy_set_header HOST $host; ? ? ? ? proxy_set_header X-Real-IP $remote_addr; ? ? ? ? proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; ? ? } ? #靜態(tài)圖片正則 ? ? ? ? location ~* .*.(jpg|html|png|gif)$ { ? ? ? ? root /usr/local/nginx/html/test; ? ? } ? ? ? ? ? ? location / { ? ? ? ? ? root ? html; ? ? ? ? ? index index.html index.htm; ? ? } ? ? ? 5. ?#重啟nginx并測試 http://192.168.59.108/1.jpg http://192.168.59.108/test.html
切換至cd /usr/local/nginx/html/目錄下
創(chuàng)建test文件夾,并在里面創(chuàng)建靜態(tài)網(wǎng)頁
拖一張圖片至test下
配置主配置文件
重啟nginx并測試
到此這篇關(guān)于Tomcat多實例與負(fù)載均衡的文章就介紹到這了,更多相關(guān)Tomcat多實例與負(fù)載均衡內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。