50 Tomcat 集群部署
文章目錄
- 1.JVM基本介紹
- 2.Tomcat是什么,與Nginx的區(qū)別。
- 3.Tomcat安裝、配置、啟動(dòng)
- 4.Tomcat的HTTP請(qǐng)求過(guò)程
- 4.使用tomcat部署web服務(wù)
- 5.使用tomcat部署多節(jié)點(diǎn)web服務(wù)
- 6.tomcat的base的基礎(chǔ)認(rèn)證
- 7.java源碼包、jar包、war包的關(guān)系、聯(lián)系、區(qū)別?
- 8. tomcat集群部署
1.JVM基本介紹
JAVA業(yè)務(wù)都是運(yùn)行在java虛擬機(jī)上的,簡(jiǎn)稱 jvm ( java virtual machine )
為什么java需要jvm虛擬機(jī)?
早期:
C語(yǔ)言 不支持跨域平臺(tái) (游戲)
Windows:在編譯一次
MACOS:還需要編譯
LINUX: 編譯一次
可移植性比較的差。
JAVA: 可以做到一次編譯,多處運(yùn)行。
windows、linux、macos。
需要我們?cè)诓僮飨到y(tǒng)上啟動(dòng)運(yùn)行一個(gè)jvm虛擬機(jī),這樣我們將java編譯好的war、jar包
在windows、linux、macos平臺(tái)上運(yùn)行起來(lái)。無(wú)需我們重復(fù)編譯。
jvm是由誰(shuí)提供的呢?
jre:java運(yùn)行環(huán)境 java runtime environment,包含了jvm。
jdk:java開(kāi)發(fā)環(huán)境 會(huì)包含java的運(yùn)行環(huán)境 jre。(yum install java -y 會(huì)安裝jdk)
如果我們只是單純運(yùn)行java代碼,jre足夠。 jdk。
2.Tomcat是什么,與Nginx的區(qū)別。
Tomcat是一個(gè)web服務(wù),提供動(dòng)態(tài)程序的解析(java),支持靜態(tài)資源。
企業(yè)nginx+tomcat模型, nginx處理靜態(tài)資源,tomcat處理動(dòng)態(tài)資源(java),能加速網(wǎng)站的訪問(wèn)和降低訪問(wèn)的延遲。
Tomcat 是一個(gè)小型的輕量級(jí)應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問(wèn)用戶不是很多的場(chǎng)合下被普遍使用,是開(kāi)發(fā)和調(diào)試JSP 程序的首選。
3.Tomcat安裝、配置、啟動(dòng)
1.安裝jdk
yum install java -y
2.安裝Tomcat ( 下載 Tomcat、解壓、啟動(dòng) )
wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.34/bin/apache-tomcat-9.0.34.tar.gz
mkdir /soft
tar xf apache-tomcat-9.0.34.tar.gz -C /soft/
ln -s /soft/apache-tomcat-9.0.34/ /soft/tomcat
3.目錄結(jié)構(gòu)
bin 主要包含啟動(dòng)和關(guān)閉tomcat的腳本(啟停java腳本依賴jar包文件)
conf tomcat配置文件的目錄
lib tomcat運(yùn)行時(shí)需要加載的jar包
logs tomcat日志存放位置
temp tomcat臨時(shí)存放文件路徑
webapps tomcat默認(rèn)站點(diǎn)目錄
work tomcat運(yùn)行時(shí)產(chǎn)生的緩存文件
4.Tomcat的HTTP請(qǐng)求過(guò)程
用戶發(fā)出一個(gè)請(qǐng)求,如http://tomcat.oldxu.com:8080/index.jsp
Connector發(fā)現(xiàn)是http/1.1協(xié)議,而且還是8080端口,于是就把請(qǐng)求接收后交給符合條件的Engine
Engine通過(guò)請(qǐng)求中的主機(jī)名tomcat.oldxu.com查找滿足條件的虛擬主機(jī)(Host)
找到后就去此虛擬主機(jī)指定的appBase(代碼存放的目錄)最后將解析產(chǎn)生的結(jié)果返回給用戶。
4.使用tomcat部署web服務(wù)
配置遠(yuǎn)程數(shù)據(jù)庫(kù)連接信息
MariaDB [(none)]> create database zrlog charset utf8; MariaDB [(none)]>grant all privileges on *.* to 'all'@'%' identified by 'xxxxxx';5.使用tomcat部署多節(jié)點(diǎn)web服務(wù)
web1 172.16.1.7
web2 172.16.1.8
1.安裝tomcat
[root@web02 ~]# yum install java -y
3.拷貝代碼 (注意是在web01節(jié)點(diǎn)操作的)
[root@web01 ~]# scp -rp /soft root@10.0.0.8:/
[root@web01 ~]# scp -rp /zrlog root@10.0.0.8:/
4.web02操作如下
[root@web02 ~]# rm -rf /soft/tomcat/
[root@web02 ~]#ln -s /soft/apache-tomcat-9.0.34/ /soft/tomcat
5.共享靜態(tài)資源。
yum install nfs-utils -y
[root@nfs ~]# cat /etc/exports
/data/blog 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
/data/zrlog 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
[root@nfs ~]# mkdir /data/zrlog
[root@nfs ~]# chown -R www.www /data/zrlog/
[root@nfs ~]# systemctl restart nfs
所有web節(jié)點(diǎn)都需要掛載
mount -t nfs 172.16.1.31:/data/zrlog /zrlog/ROOT/attached/
6.tomcat的base的基礎(chǔ)認(rèn)證
配置Tomcat網(wǎng)頁(yè)管理頁(yè)面。 ( nginx basic auth)
vim /soft/tomcat/webapps/manager/META-INF/context.xml
- 為zrblog添加/admin/添加base認(rèn)證
1.需要找到項(xiàng)目下的WEB-INF/web.xml進(jìn)行配置。(了解)
[root@es-node1 tomcat]# vim /zrlog/ROOT/WEB-INF/web.xml
2.配置用戶名密碼,關(guān)聯(lián)對(duì)應(yīng)的角色(多個(gè)role不要使用相同用戶)
[root@es-node1 tomcat]# vim /soft/tomcat/conf/tomcat-users.xml
重啟tomcat
[root@es-node1 ~]#/soft/tomcat/bin/shutdown.sh && /soft/tomcat/bin/startup.sh
7.java源碼包、jar包、war包的關(guān)系、聯(lián)系、區(qū)別?
1.什么是源碼包?
由java工程師編寫(xiě)的java代碼,稱為java源碼包。
編譯( maven 方式去編譯java的源代碼 )
編譯之后會(huì)得到一個(gè)包裹:
war jar
2.什么是war包?
由源碼編譯后生成的產(chǎn)物,可以直接放入 tomcat運(yùn)行起來(lái)。( 比較廣泛 )
3.什么是jar包?
由源碼編譯后生成的產(chǎn)物。
1.不能獨(dú)立運(yùn)行起來(lái),它可能被某個(gè)java程序依賴運(yùn)行。或者war包運(yùn)行所依賴。
2.可獨(dú)立運(yùn)行起來(lái)的, java -jar xxx.jar 直接啟動(dòng)運(yùn)行,無(wú)需tomcat
4.源碼包、jar、war:
1.源碼包編譯后會(huì)產(chǎn)生war包、jar包
2.war通常是直接由tomcat運(yùn)行啟動(dòng),啟動(dòng)加載項(xiàng)目時(shí)會(huì)依賴一些jar包。
3.jar包,
分為不可獨(dú)立運(yùn)行(被java程序依賴運(yùn)行、或者是被war包依賴運(yùn)行)
分為可獨(dú)立運(yùn)行:可以直接對(duì)外提供服務(wù)。只需要有java環(huán)境即可。啟動(dòng)命令: java -jar xx.jar
8. tomcat集群部署
8.1 Nginx_proxy
[root@lb01 ~]# cat /etc/nginx/conf.d/proxy_zrlog.oldxu.com.conf
8.2 單節(jié)點(diǎn)Tomcat實(shí)現(xiàn)HTTPS ( 了解 )
1.修改tomcat配置: server.xml
0.首先需要有證書(shū) ( 必須 )
1.將http的默認(rèn)監(jiān)聽(tīng)端口8080 修改為 80,redirect至 443
2.開(kāi)啟https監(jiān)聽(tīng)器,配置證書(shū)即可。
3.將http強(qiáng)制跳轉(zhuǎn)https ( tomcat操作,與nginx無(wú)關(guān)。)
使用新機(jī)器web03演示
[root@nfs ~]# yum install java -y
[root@nfs ~]# mkdir /soft
[root@nfs ~]#tar xf apache-tomcat-9.0.34.tar.gz -C /soft/
[root@nfs ~]#ln -s /soft/apache-tomcat-9.0.34/ /soft/tomcat
vim /soft/tomcat/conf/server.xml
2.1 修改 localhost
<Host name="aliyun.xuliangwei.com" appBase="webapps"2.2 配置http跳轉(zhuǎn) https
在負(fù)載均衡上配置證書(shū)就可以實(shí)現(xiàn)全棧https
| 172.16.1.7 | 172.16.1.8 | 10.0.0.5 |
[root@lb01 conf.d]# cat /etc/nginx/conf.d/proxy_zrlog.oldxu.com.conf
upstream zrlog {server 172.16.1.7:8080;server 172.16.1.8:8080; }server {listen 443 ssl;server_name zrlog.oldxu.com;ssl_certificate ssl_key/server.crt;ssl_certificate_key ssl_key/server.key;#tomcat啟動(dòng)的java程序,可以直接通過(guò)proxy_pass進(jìn)行負(fù)載均衡location / {proxy_pass http://zrlog;include proxy_params;} }server {listen 80;server_name zrlog.oldxu.com;return 302 https://$server_name$request_uri; }8.3 Nginx+Tomcat+Redis實(shí)現(xiàn)集群會(huì)話共享
多種方式:
1.ip_hash
2.mysql
3.redis
4.tomcat自帶的cluster session復(fù)制 ( 官方建議不要超過(guò)4個(gè)tomcat節(jié)點(diǎn) )
-
準(zhǔn)備web01 和 web02
支持redis session共享----->>>下載 tomcat-cluster-redis-session-manager -
解壓
-
1.拷貝所有的jar包
[root@web01 ~]# cp tomcat-cluster-redis-session-manager/lib/* /soft/tomcat/lib/ -
2.拷貝redis配置文件,并且更新redis配置文件
[root@web01 ~]# cp tomcat-cluster-redis-session-manager/conf/redis-data-cache.properties /soft/tomcat/conf/ -
3.Add the below two lines in your tomcat/conf/context.xml file.
<Valve className="tomcat.request.session.redis.SessionHandlerValve" />
<Manager className="tomcat.request.session.redis.SessionManager" /> -
4.準(zhǔn)備web01 和web02 一個(gè)session測(cè)試頁(yè)面
[root@web02 ~]# mkdir -p /session/ROOT
[root@web02 ~]# vi /session/ROOT/index.jsp
- 5.接入負(fù)載均衡
[root@lb01 conf.d]# cat /etc/nginx/conf.d/proxy_session.oldxu.com.conf
建議:
1.先配置session的網(wǎng)站
2.搭建nginx+tomcat集群
3.測(cè)試訪問(wèn),演示是否web01和web02的session不一致
4.接入redis,實(shí)現(xiàn)tomcat共享會(huì)話信息
5.再次測(cè)試,請(qǐng)求web01和web02 看session是否是一致的。
6.登陸redis查看是否存在對(duì)應(yīng)的session的key
總結(jié)
以上是生活随笔為你收集整理的50 Tomcat 集群部署的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Realsense D435i关闭IR结
- 下一篇: 无公网IP,使用ZeroTier免费内网