Tomcat多實例與負載均衡示例詳解
目錄
- 一、Tomcat多實例
- 1.1 安裝好 jdk
- 1.2 安裝 tomcat
- 1.3 配置 tomcat 環境變量
- 1.4修改tomcat2中的主配置文件
- 1.5修改啟動腳本和關閉腳本
- 1.6啟動tomcat并查看
- 二、Nginx+Tomcat負載均衡、動靜分離
- 2.1 部署Nginx 負載均衡器
- 2.2部署第一臺Tomcat
- 2.3部署第二臺Tomcat
- 2.4nginx 配置
一、Tomcat多實例
1.1 安裝好 jdk
在部署 Tomcat 之前必須安裝好 jdk,因為 jdk 是 Tomcat 運行的必要環境。
1. #關閉防火墻 systemctl stop firewalldsystemctl disable firewalldsetenforce 0 2. #將安裝 Tomcat 所需軟件包傳到/opt目錄下apache-tomcat-9.0.16.tar.gz jdk-8u201-linux-x64.rpm 3. #切換至/opt下,安裝JDKcd /optrpm -ivh jdk-8u201-linux-x64.rpm ?4. #查看java版本java -version
關閉防火墻
將安裝 Tomcat 所需軟件包傳到/opt目錄下
切換至/opt下,安裝JDK
查看java版本
1.2 安裝 tomcat
1. #切換至/opt下,解壓tomcat包cd /opttar -zxf apache-tomcat-9.0.16.tar.gz ?2. #新建文件夾/usr/local/tomcatmkdir /usr/local/tomcat 3. #將解壓后的包拷貝至/usr/local/下并重命名cp -a apache-tomcat-9.0.16 /usr/local/tomcat/tomcat1cp -a apache-tomcat-9.0.16 /usr/local/tomcat/tomcat2
切換至/opt下,解壓tomcat包
新建文件夾/usr/local/tomcat
將解壓后的包拷貝至/usr/local/下并重命名
1.3 配置 tomcat 環境變量
vim /etc profile?export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jarexport 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修改啟動腳本和關閉腳本
1. #修改tomcat1的/usr/local/tomcat/tomcat1/bin/startup.sh vim /usr/local/tomcat/tomcat1/bin/startup.sh ?export CATALINA_HOME1=/usr/local/tomcat/tomcat1export CATALINA_BASE1=/usr/local/tomcat/tomcat1export 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/tomcat1export CATALINA_BASE1=/usr/local/tomcat/tomcat1export 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/tomcat2export CATALINA_BASE1=/usr/local/tomcat/tomcat2export 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/tomcat2export CATALINA_BASE1=/usr/local/tomcat/tomcat2export 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. #啟動tomcat1cd /usr/local/tomcat/./tomcat1/bin/startup.sh?2. #啟動tomcat2./tomcat2/bin/startup.sh ?3. #查看是否啟動成功ss -ntap|grep javahttp://192.168.59.118:8080/
啟動tomcat1、tomcat2
查看是否啟動成功
二、Nginx+Tomcat負載均衡、動靜分離
- standalone模式,Tomcat單獨運行,直接接受用戶的請求,不推薦。
反向代理,單機運行,提供了一個Nginx作為反向代理,可以做到靜態由nginx提供響應,動態jsp
代理給Tomcat
- LNMT:Linux + Nginx + MySQL + Tomcat
LAMT:Linux + Apache(Httpd)+ MySQL + Tomcat
前置一臺Nginx,給多臺Tomcat實例做反向代理和負載均衡調度,Tomcat上部署的純動態頁面更
適合
LNMT:Linux + Nginx + MySQL + Tomcat
- 多級代理
LNNMT:Linux + Nginx + Nginx + MySQL + Tomcat
動態服務器的問題,往往就是并發能力太弱,往往需要多臺動態服務器一起提供服務。如何把并發的壓力分攤,這就需要調度,采用一定的調度策略,將請求分發給不同的服務器,這就是Load Balance負載均衡。
當單機Tomcat,演化出多機多級部署的時候,一個問題便凸顯出來,這就是Session。而這個問題的由來,都是由于HTTP協議在設計之初沒有想到未來的發展。
2.1 部署Nginx 負載均衡器
環境簡介:
ngnix:192.168.59.108
tomcat1:192.168.59.105
tomcat2: 192.168.59.118
1. #關閉防火墻systemctl stop firewalldsetenforce 0?2. #安裝依賴關系包yum -y install pcre-devel zlib-devel gcc gcc-c++ make?3. #新建用戶和組便于管理useradd -M -s /sbin/nologin nginx?4. #切換至opt目錄,將下載好的壓縮包傳進來解壓cd /opttar -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. #做軟連接,讓系統識別nginx的操作命令
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
?
7. #將nginx命令加入服務
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. #重新加載單元.啟動服務
systemctl daemon-reload
systemctl start nginx
?
9. #查看是否成功啟動
ss -ntap|grep nginx
http://192.168.59.108/
關閉防火墻
安裝依賴關系包
新建用戶和組便于管理
切換至opt目錄,將下載好的壓縮包傳進來
切換至解壓后的目錄下編譯
安裝
做軟連接,讓系統識別nginx的操作命令
將nginx命令加入服務
重新加載單元.啟動服務
查看是否成功啟動
2.2部署第一臺Tomcat
192.168.59.105
1. #關閉防火墻systemctl stop firewalldsetenforce 0?2. #切換至/opt,將安裝 Tomcat 所需軟件包傳到/opt目錄下apache-tomcat-9.0.16.tar.gz jdk-8u201-linux-x64.rpm?3. #安裝JDKrpm -ivh jdk-8u201-linux-x64.rpm ?4. #修改換將變量配置文件vim /etc/profileexport JAVA_HOME=/usr/java/jdk1.8.0_201-amd64export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jarexport PATH=$JAVA_HOME/bin:$PATH?5. #刷新配置文件source /etc/profile?6. #切換至/opt下,解壓tomcat包cd /opttar -zxf apache-tomcat-9.0.16.tar.gz ?7. #將解壓后的包拷貝至/usr/local/下并重命名cp -r apache-tomcat-9.0.16 /usr/local/tomcat?8. #添加用戶設置屬主屬組useradd -s /sbin/nologin tomcatchown tomcat:tomcat /usr/local/tomcat -R??9. #新建服務文件vim /etc/systemd/system/tomcat.service[Unit]Description=Tomcat#After=syslog.target network.target remote-fs.target nss-lookup.targetAfter=syslog.target network.target?[Service]Type=forkingExecStart=/usr/local/tomcat/bin/startup.shExecStop=/usr/local/tomcat/bin/shutdown.shRestartSec=3PrivateTmp=trueUser=tomcatGroup=tomcat?[Install]WantedBy=multi-user.target?10. #重新加載服務,并開啟,查看是否成功啟動?systemctl daemon-reloadsystemctl start tomcatss -ntap |grep 8080???#############新建動態頁面站點###########3?11. #切換至webapp下,新建test目錄cd /usr/local/tomcat/webapps/mkdir test?12. #建立動態頁面文件vim test/index.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><html> <head> ? ? <title>JSP test1 page </title> </head> <body> ? ? <% out.println("動態頁面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. #重啟服務,并在網頁測試systemctl restart tomcat.service http://192.168.59.105:8080/
關閉防火墻
切換至/opt,將安裝 Tomcat 所需軟件包傳到/opt目錄下
安裝JDK
修改換將變量配置文件
刷新配置文件
切換至/opt下,解壓tomcat包
將解壓后的包拷貝至/usr/local/下并重命名
添加用戶設置屬主屬組
新建服務文件
重新加載服務,并開啟,查看是否成功啟動
切換至webapp下,新建test目錄
建立動態頁面文件
修改主配置文件
重啟服務,并在網頁測試
2.3部署第二臺Tomcat
1. #關閉防火墻systemctl stop firewalldsetenforce 0?2. #切換至/opt,將安裝 Tomcat 所需軟件包傳到/opt目錄下apache-tomcat-9.0.16.tar.gz jdk-8u201-linux-x64.rpm?3. #安裝JDKrpm -ivh jdk-8u201-linux-x64.rpm ?4. #修改環境變量配置文件vim /etc/profileexport JAVA_HOME=/usr/java/jdk1.8.0_201-amd64export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jarexport PATH=$JAVA_HOME/bin:$PATH?5. #刷新配置文件source /etc/profile?6. #切換至/opt下,解壓tomcat包cd /opttar -zxf apache-tomcat-9.0.16.tar.gz ?7. #將解壓后的包拷貝至/usr/local/下并重命名cp -r apache-tomcat-9.0.16 /usr/local/tomcat?8. #添加用戶設置屬主屬組useradd -s /sbin/nologin tomcatchown tomcat:tomcat /usr/local/tomcat -R??9. #新建服務文件vim /etc/systemd/system/tomcat.service[Unit]Description=Tomcat#After=syslog.target network.target remote-fs.target nss-lookup.targetAfter=syslog.target network.target?[Service]Type=forkingExecStart=/usr/local/tomcat/bin/startup.shExecStop=/usr/local/tomcat/bin/shutdown.shRestartSec=3PrivateTmp=trueUser=tomcatGroup=tomcat?[Install]WantedBy=multi-user.target?10. #重新加載服務,并開啟,查看是否成功啟動?systemctl daemon-reloadsystemctl start tomcatss -ntap |grep 8080???#############新建動態頁面站點###########3?11. #切換至webapp下,新建test目錄cd /usr/local/tomcat/webapps/mkdir test?12. #建立動態頁面文件vim test/index.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><html> <head> ? ? <title>JSP test2 page </title> </head> <body> ? ? <% out.println("動態頁面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. #重啟服務,并在網頁測試systemctl restart tomcat.service http://192.168.59.105:8080/
關閉防火墻
切換至/opt,將安裝 Tomcat 所需軟件包傳到/opt目錄下
安裝JDK
修改環境變量配置文件
刷新配置文件
切換至/opt下,解壓tomcat包
將解壓后的包拷貝至/usr/local/下并重命名
添加用戶設置屬主屬組
新建服務文件
重新加載服務,并開啟,查看是否成功啟動
切換至webapp下,新建test目錄
建立動態頁面文件
修改主配置文件
重啟服務,并在網頁測試
2.4nginx 配置
準備靜態頁面和圖片
1. #切換至/usr/local/nginx/html/目錄下cd /usr/local/nginx/html/?2. #創建test文件夾,并在里面創建靜態網頁mkdir testcd testvim test.htmlthis is static test web !!?3. #拖一張圖片至test下改名為1.jpgmv 1.jfif 1.jpg?4. #配置主配置文件vim /usr/local/nginx/conf/nginx.conf?#配置負載均衡服務器列表,weight參數表示權重,權重越高,被分配到的概率越大 ?#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; ? ? }?#靜態圖片正則 ? ? ? ? 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.jpghttp://192.168.59.108/test.html
切換至cd /usr/local/nginx/html/目錄下
創建test文件夾,并在里面創建靜態網頁
拖一張圖片至test下
配置主配置文件
重啟nginx并測試
到此這篇關于Tomcat多實例與負載均衡的文章就介紹到這了,更多相關Tomcat多實例與負載均衡內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!
相關文章: