1.Tomcat
Tomcat是apache軟件基金會(apache Software Foundation)的Jakarta 項目中的一個核心項目,由apache、Sun和其他一些公司及個人共同開發而成。
Tomcat服務器是一個免費的開放源代碼的Web應用服務器,屬於輕量級應用服務器,在中小型系統和並發訪問用戶不是很多的場合下被普遍使用,是開發和調試JSP程序的首選。
Tomcat和Nginx、apache(httpd)、lighttpd等Web服務器一樣,具有處理HTMl頁面的功能,另外它還是一個Servlet和JSP容器,獨立的Servlet容器是Tomcat的默認模式。不過,Tomcat處理靜態HTMl的能力不如Nginx/apache服務器。目前Tomcat最新版本為9.0。Java容器還有resin、weblogic等。
2.Tomcat安裝
2.1 下載tomcat安裝包
tomcat官網:https://tomcat.apache.org/
下載最新的apache-tomcat-9.0.19 .zip
2.2 上傳至linux
[root@localhost ~]# rz

[root@localhost ~]# ls anaconda-ks.cfg apr-1.5.2.tar.gz httpd-2.4.20 apache-tomcat-9.0.19.zip apr-util-1.5.4 httpd-2.4.20.tar.gz apr-1.5.2 apr-util-1.5.4.tar.gz
2.3 解壓
[root@localhost ~]#unzip apache-tomcat-9.0.19.zip [root@localhost ~]# ls apache-tomcat-9.0.19
2.4 復制到/usr/local/tomcat 下
[root@localhost ~]# cp -a apache-tomcat-9.0.19 /usr/local/tomcat
2.5 查看
[root@localhost ~]# cd /usr/local/tomcat [root@localhost tomcat]# ls bin conf lib logs README.md RUNNING.txt webapps BUILDING.txt CONTRIBUTING.md LICENSE NOTICE RElEaSE-NOTES temp work #二進制包,不在需要編譯安裝
2.6 .sh腳本文件需要執行權限,授予執行權限
[root@localhost tomcat]# cd bin [root@localhost bin]# ll -rw-r--r--. 1 root root 2020 apr 12 15:24 shutdown.bat -rw-r--r--. 1 root root 1902 apr 12 15:24 shutdown.sh -rw-r--r--. 1 root root 2022 apr 12 15:24 startup.bat -rw-r--r--. 1 root root 1904 apr 12 15:24 startup.sh [root@localhost bin]# chmod -R a+x /usr/local/tomcat -rwxr-xr-x. 1 root root 1902 apr 12 15:24 shutdown.sh -rwxr-xr-x. 1 root root 2022 apr 12 15:24 startup.bat -rwxr-xr-x. 1 root root 1904 apr 12 15:24 startup.sh
2.7 下載java環境
選擇yum安裝tomcat需要的jdk,就不用再手動配置環境變量
[root@localhost /]# mount /dev/cdrom /mnt mount: /dev/sr0 is write-protected, mounting read-only [root@localhost /]# yum install java -y
2.8 啟動tomcat
[root@localhost bin]# ./startup.sh #在當前目錄下啟動 Using CaTaliNa_BaSE: /usr/local/tomcat Using CaTaliNa_HOME: /usr/local/tomcat Using CaTaliNa_TMPDiR: /usr/local/tomcat/temp Using JRE_HOME: /usr Using ClaSSPaTH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar Tomcat started. [root@localhost bin]# ./startup.sh Using CaTaliNa_BaSE: /usr/local/tomcat Using CaTaliNa_HOME: /usr/local/tomcat Using CaTaliNa_TMPDiR: /usr/local/tomcat/temp Using JRE_HOME: /usr Using ClaSSPaTH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar Tomcat started. [root@localhost bin]# ss -tnl #查看端口 liSTEN 0 100 :::8080 :::* liSTEN 0 1 ::ffff:127.0.0.1:8005 :::* liSTEN 0 100 :::8009 :::* #三個端口均已開啟
2.9 windows端訪問,要加端口
2.10 關閉tomcat
[root@localhost bin]# ./shutdown.sh #當前目錄下關閉
2.11 將命令寫入環境變量的子配置文件,確保在任何目錄下均可啟動或關閉tomcat
[root@localhost ~]# vim /etc/profile.d/tomcat.sh export PATH=/usr/local/tomcat/bin/:$PaTH :wq [root@localhost ~]# source /etc/profile.d/tomcat.sh #重新加載文件確保其生效 [root@localhost ~]# startup.sh #再次啟動 Tomcat started. [root@localhost ~]# ss -tnl State Recv-Q Send-Q local address:Port Peer address:Port liSTEN 0 100 :::8080 :::* liSTEN 0 1 ::ffff:127.0.0.1:8005 :::* liSTEN 0 100 :::8009 :::*
3.tomcat目錄
[root@localhost ~]# cd /usr/local/tomcat/ [root@localhost tomcat]# tree -l 1 #以樹形列出 . ├── bin #用以啟動、關閉Tomcat或者其它功能的腳本(.bat文件和.sh文件) ├── BUilDiNG.txt ├── conf #用以配置Tomcat的XML及DTD文件 ├── CONTRiBUTiNG.md ├── lib #存放web應用能訪問的JAR包 ├── LICENSE #許可證 ├── logs #Catalina和其它Web應用程序的日志文件 ├── NOTICE ├── README.md ├── RElEASE-NOTES ├── RUNNING.txt ├── temp #臨時文件 ├── webapps #Web應用程序根目錄 └── work #用以產生有JSP編譯出的Servlet的.java和.class文件
4. tomcat日志
[root@localhost tomcat]# cd logs/ [root@localhost logs]# ls catalina.out #tomcat的實時日志
5.tomcat主配置文件server.xml詳解
[root@localhost tomcat]# cd conf Catalina context.xml logging.properties tomcat-users.xsd catalina.policy jaspic-providers.xml server.xml web.xml catalina.properties jaspic-providers.xsd tomcat-users.xml [root@localhost conf]# vim srever.xml <Server port="8005" shutdown="SHUTDOWN"> <Connector port="8080" protocol="HTTP/1.1" <Connector port="8009" protocol="aJP/1.3" redirectPort="8443" /> ……….. <Host name="localhost" appBase="webapps" unpackWaRs="true" autoDeploy="true">
#WaR壓縮包放在webapps下會自動解壓 自動部署
6. tomcat的三個端口
8005端口:接收shutdown指令。
port指定Tomcat監聽shutdown命令端口。終止服務器運行時,必須在Tomcat服務器所在的機器上發出shutdown命令,該屬性是必須的。 shutdown指定終止Tomcat服務器運行時,發給Tomcat服務器的shutdown監聽端口的字符串,該屬性必須設置。
<Server port="8005" shutdown="SHUTDOWN">
8080端口:接收HTTP協議。
connector:接收用戶請求,類似於httpd的listen配置監聽端口。
port指定服務器端要創建的端口號,並在這個端口監聽來自客戶端的請求。
redirectPort指定服務器正在處理http請求時收到了一個SSl傳輸請求后重定向的端口號
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
8009端口:接收AJP協議
protocol連接器使用的協議,支持HTTP和AJP。AJP(Apache Jserv Protocol)專用於tomcat與apache建立通信的, 在httpd反向代理用戶請求至tomcat時使用(可見Nginx反向代理時不可用aJP協議)
<Connector port="8009" protocol="aJP/1.3" redirectPort="8443" />
[root@localhost conf]# telnet 127.0.0.1 8005 #進入8005端口 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. SHUTDOWN #關閉端口 Connection closed by foreign host. [root@localhost conf]# ss -tnl State Recv-Q Send-Q local address:Port Peer address:Port liSTEN 0 128 *:111 *:* liSTEN 0 128 *:22 *:* liSTEN 0 100 127.0.0.1:25 *:* liSTEN 0 128 :::111 :::* liSTEN 0 128 :::80 :::* liSTEN 0 128 :::22 :::* liSTEN 0 100 ::1:25 :::* #tomcat關閉
/usr/local/tomcat/webapps/ROOT :網站根目錄;網站訪問默認為ROOT目錄,訪問文件也可以在webapps下創建目錄將index.html拷入,再寫入文件,訪問時必須將非ROOT的目錄跟上。如在webapps創建目錄zxj,拷入index.html后寫入211111111:telnet:遠程登錄指令
[root@localhost tomcat]# cd webapps/ [root@localhost webapps]# echo "2111111111" > index.html [root@localhost webapps]# cp index.html zxj
7.tomcat多實例部署
[root@localhost local]# cp -a tomcat tomcat1 #復制多實例,
[root@localhost local]# cp -a tomcat tomcat2 [root@localhost local]# ls tomcat tomcat1 tomcat2 #一共3個tomcat服務,為避免端口沖突, 需要修改復制實例的端口,使端口號不沖突即可 [root@localhost local]# vim tomcat1/conf/server.xml <Server port="8006" shutdown="SHUTDOWN"> <Connector port="8081" protocol="HTTP/1.1" ;wq [root@localhost local]# vim tomcat2/conf/server.xml <Server port="8007" shutdown="SHUTDOWN"> <Connector port="8082" protocol="HTTP/1.1" :wq [root@localhost local]# tomcat1/bin/startup.sh #啟動tomcat1 [root@localhost local]# tomcat2/bin/startup.sh #啟動tomcat2
windows端訪問
多實例部署成功
8. tomcat搭建集群
以Nginx為調度器,三台tomcat為集群節點搭建集群
以192.168.16.部署Nginx
#Nginx: #檢查80端口是否被占用,若有,則關掉占用端口的http [root@localhost ~]# ss -tnl [root@localhost ~]# systemctl restart nginx #啟動Nginx [root@localhost ~]# ss -tnl liSTEN 0 128 :::80 :::*
#配置負載均衡 [root@localhost ~]# vim /etc/nginx/nginx.conf upstream zxj { #負載均衡 server 192.168.16.3:8080 weight=2 max_fails=2 fail_timeout=2 server 192.168.16.3:8081 weight=2 max_fails=2 fail_timeout=2 server 192.168.16.3:8082 weight=2 max_fails=2 fail_timeout=2 } server { listen 80 default_server; listen [::]:80 default_server; server_name _; root /var/www/html; index index.php index.html; # load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { proxy_pass http://zxj; #集群名 } :wq [root@localhost ~]# nginx -t #檢查 nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful [root@localhost ~]# systemctl restart nginx #重啟
只在在瀏覽器查詢.4即可,記得要關閉防火牆
9.tomcat上線jpress博客系統
jpress類似於wordpress的一個開源博客系統。
9.1 下載jpress
https://gitee.com/fuhai/jpress/blob/alpha/wars/jpress-web-newest.war
9.2 上傳至ROOT下
[root@localhost ~]# cd /usr/local/tomcat/webapps/ROOT/
[root@localhost ROOT]# rz

[root@localhost ROOT]#unzip fuhai-jpress-alpha-zip [root@localhost ROOT]#ls fuhai-jpress-alpha-zip jpress #無法自動解壓,繼續手動解壓 [root@localhost ROOT]# cd jpress [root@localhost jpress]# ls DOC.md jpress liCENSE REaDME.md wars [root@localhost jpress]# cd wars/ [root@localhost wars]# ls jpress-web-newest.war [root@localhost wars]# cp jpress-web-newest.war /usr/local/tomcat/webapps/ROOT [root@localhost wars]#cd /usr/local/tomcat/webapps/ROOT [root@localhost ROOT]#unzip jpress-web-newest.war
在windows端訪問
配置數據庫
[root@localhost ROOT]# cd [root@localhost ~]# systemctl restart mariadb [root@localhost ~]# mysql -uroot MariaDB [(none)]> create database zxj; MariaDB [(none)]> grant all on *.* to zxj@'localhost' identified by '123'; #授權給所有用戶 MariaDB [(none)]> exit Bye [root@localhost ~]# systemctl restart mariadb
重啟tomcat
[root@localhost ~]# shutdown.sh [root@localhost ~]# ss -tnl liSTEN 0 100 :::8080 :::*