Tomcat多實(shí)例與負(fù)載均衡示例詳解
一、Tomcat多實(shí)例
1.1 安裝好 jdk
在部署 Tomcat 之前必須安裝好 jdk,因?yàn)?jdk 是 Tomcat 運(yùn)行的必要環(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修改啟動(dòng)腳本和關(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啟動(dòng)tomcat并查看
1. #啟動(dòng)tomcat1 cd /usr/local/tomcat/ ./tomcat1/bin/startup.sh ? 2. #啟動(dòng)tomcat2 ./tomcat2/bin/startup.sh ? 3. #查看是否啟動(dòng)成功 ss -ntap|grep java http://192.168.59.118:8080/
啟動(dòng)tomcat1、tomcat2
查看是否啟動(dòng)成功
二、Nginx+Tomcat負(fù)載均衡、動(dòng)靜分離
- standalone模式,Tomcat單獨(dú)運(yùn)行,直接接受用戶的請(qǐng)求,不推薦。
反向代理,單機(jī)運(yùn)行,提供了一個(gè)Nginx作為反向代理,可以做到靜態(tài)由nginx提供響應(yīng),動(dòng)態(tài)jsp
代理給Tomcat
- LNMT:Linux + Nginx + MySQL + Tomcat
LAMT:Linux + Apache(Httpd)+ MySQL + Tomcat
前置一臺(tái)Nginx,給多臺(tái)Tomcat實(shí)例做反向代理和負(fù)載均衡調(diào)度,Tomcat上部署的純動(dòng)態(tài)頁面更
適合
LNMT:Linux + Nginx + MySQL + Tomcat
- 多級(jí)代理
LNNMT:Linux + Nginx + Nginx + MySQL + Tomcat
動(dòng)態(tài)服務(wù)器的問題,往往就是并發(fā)能力太弱,往往需要多臺(tái)動(dòng)態(tài)服務(wù)器一起提供服務(wù)。如何把并發(fā)的壓力分?jǐn)?,這就需要調(diào)度,采用一定的調(diào)度策略,將請(qǐng)求分發(fā)給不同的服務(wù)器,這就是Load Balance負(fù)載均衡。
當(dāng)單機(jī)Tomcat,演化出多機(jī)多級(jí)部署的時(shí)候,一個(gè)問題便凸顯出來,這就是Session。而這個(gè)問題的由來,都是由于HTTP協(xié)議在設(shè)計(jì)之初沒有想到未來的發(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目錄,將下載好的壓縮包傳進(jìn)來解壓 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)識(shí)別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. #重新加載單元.啟動(dòng)服務(wù)
systemctl daemon-reload
systemctl start nginx
?
9. #查看是否成功啟動(dòng)
ss -ntap|grep nginx
http://192.168.59.108/
關(guān)閉防火墻
安裝依賴關(guān)系包
新建用戶和組便于管理
切換至opt目錄,將下載好的壓縮包傳進(jìn)來
切換至解壓后的目錄下編譯
安裝
做軟連接,讓系統(tǒng)識(shí)別nginx的操作命令
將nginx命令加入服務(wù)
重新加載單元.啟動(dòng)服務(wù)
查看是否成功啟動(dòng)
2.2部署第一臺(tái)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ù),并開啟,查看是否成功啟動(dòng) ? systemctl daemon-reload systemctl start tomcat ss -ntap |grep 8080 ? ? ? #############新建動(dòng)態(tài)頁面站點(diǎn)###########3 ? 11. #切換至webapp下,新建test目錄 cd /usr/local/tomcat/webapps/ mkdir test ? 12. #建立動(dòng)態(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("動(dòng)態(tài)頁面1,http://www.test1.com");%> </body> </html> ? 13. #修改主配置文件 vim /usr/local/tomcat/conf/server.xml 刪除原來的站點(diǎn)模塊 添加 <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)頁測(cè)試 systemctl restart tomcat.service http://192.168.59.105:8080/
關(guān)閉防火墻
切換至/opt,將安裝 Tomcat 所需軟件包傳到/opt目錄下
安裝JDK
修改換將變量配置文件
刷新配置文件
切換至/opt下,解壓tomcat包
將解壓后的包拷貝至/usr/local/下并重命名
添加用戶設(shè)置屬主屬組
新建服務(wù)文件
重新加載服務(wù),并開啟,查看是否成功啟動(dòng)
切換至webapp下,新建test目錄
建立動(dòng)態(tài)頁面文件
修改主配置文件
重啟服務(wù),并在網(wǎng)頁測(cè)試
2.3部署第二臺(tái)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ù),并開啟,查看是否成功啟動(dòng) ? systemctl daemon-reload systemctl start tomcat ss -ntap |grep 8080 ? ? ? #############新建動(dòng)態(tài)頁面站點(diǎn)###########3 ? 11. #切換至webapp下,新建test目錄 cd /usr/local/tomcat/webapps/ mkdir test ? 12. #建立動(dòng)態(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("動(dòng)態(tài)頁面2,http://www.test2.com");%> </body> </html> ? 13. #修改主配置文件 vim /usr/local/tomcat/conf/server.xml 刪除原來的站點(diǎn)模塊 添加 <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)頁測(cè)試 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ù),并開啟,查看是否成功啟動(dòng)
切換至webapp下,新建test目錄
建立動(dòng)態(tài)頁面文件
修改主配置文件
重啟服務(wù),并在網(wǎng)頁測(cè)試
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; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #動(dòng)靜分離 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并測(cè)試 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并測(cè)試
到此這篇關(guān)于Tomcat多實(shí)例與負(fù)載均衡的文章就介紹到這了,更多相關(guān)Tomcat多實(shí)例與負(fù)載均衡內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Jenkins+tomcat自動(dòng)發(fā)布的熱部署/重啟及遇到的問題解決辦法(推薦)
這篇文章主要介紹了Jenkins+tomcat自動(dòng)發(fā)布的熱部署/重啟及遇到的問題解決辦法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07Tomcat6.0與windows 2003 server 的IIS服務(wù)器集成
本例主要講解Tomcat6.0與windows 2003 server 的IIS服務(wù)器集成的問題,用到的工具版 本如下:jdk是6.0、Tomcat 6.0、windows 2003 server 的IIS。2009-08-08同一臺(tái)服務(wù)器(電腦)運(yùn)行多個(gè)Tomcat的設(shè)置方法步驟
這篇文章主要介紹了同一臺(tái)服務(wù)器(電腦)運(yùn)行多個(gè)Tomcat的設(shè)置方法步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-04-04Linux系統(tǒng)下安裝三個(gè)或者多個(gè)tomcat(步驟詳細(xì))
這篇文章主要介紹了Linux系統(tǒng)下安裝三個(gè)或者多個(gè)tomcat(步驟詳細(xì)),文中通過步驟介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04Tomcat安全設(shè)置 win2003 下tomcat權(quán)限限制
Tomcat安全設(shè)置 win2003 下tomcat權(quán)限限制,需要的朋友可以參考下。2011-03-03解決Tomcat啟動(dòng)失敗:嚴(yán)重?[main]?org.apache.catalina.util.LifecycleB
這篇文章主要介紹了解決Tomcat啟動(dòng)失敗:嚴(yán)重?[main]org.apache.catalina.util.LifecycleBase.handleSubClassException?初始化組件失敗問題的方法,希望可以幫助到你2023-03-03如何在IntelliJ IDEA 2018上配置Tomcat并運(yùn)行第一個(gè)JavaWeb項(xiàng)目
這篇文章主要介紹了在IntelliJ IDEA 2018上配置Tomcat并運(yùn)行第一個(gè)JavaWeb項(xiàng)目,需要的朋友可以參考下2020-09-09tomcat部署簡單的html靜態(tài)網(wǎng)頁的方法
這篇文章主要介紹了tomcat部署簡單的html靜態(tài)網(wǎng)頁的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-06-06