Tomcat 9.0 7 的兩種開機啟動方式與web頁面管理
系統平臺:
CentOS Linux release 7.4.1708 (Core) 內核 3.10.0-693.el7.x86_64 最小化安裝
配置jdk環境
去oracle官網下載 符合項目需求的 組件 Java SE Development Kit 8u162
http://download.oracle.com/otn-pub/java/jdk/8u162-b12/0da788060d494f5095bf8624735fa2f1/jdk-8u162-linux-x64.tar.gz
# cd /usr/local/ # tar xvf jdk-8u162-linux-x64.tar.gz -C /usr/local/ # ln -sv jdk1.8.0_162/ javajdk # vim /etc/profile.d/java.sh export JAVA_HOME=/usr/local/javajdk export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib # source /etc/profile.d/java.sh # java -version java version "1.8.0_162"
配置tomcat
去官網下載適合的版本
https://tomcat.apache.org/
http://apache.mirrors.pair.com/tomcat/tomcat-9/v9.0.7/bin/apache-tomcat-9.0.7.tar.gz
# tar xvf apache-tomcat-9.0.7.tar.gz -C /usr/local/
# cd /usr/local/
# mv apache-tomcat-9.0.7/ tomcat-9.0.7
# ln -sv tomcat-9.0.7/ tomcat
配置tomcat環境變量
# vim /etc/profile.d/tomcat.sh export CATALINA_BASE=/usr/local/tomcat export PATH=$CATALINA_BASE/bin:$PATH
配置tomcat開機啟動
方法一:通過catalina.sh
直接調用$CATALINA_HOME/bin/startup.sh來啟動tomcat,調用$CATALINA_HOME/bin/shutdown.sh來關閉tomcat
tomcat 進程是由 root 用戶打開並維護的,從安全角度考慮存在缺陷。
# vim /usr/local/tomcat/bin/catalina.sh 在第二行寫入 JAVA_HOME=/usr/local/javajdk CATALINA_BASE=/usr/local/tomcat # echo "/usr/local/tomcat/bin/catalina.sh start" >> /etc/rc.local # chmod +x /etc/rc.local > 這一步很重要
方法二:以daemon方式運
以daemon方式運行tomcat可以使tomcat不受終端影響,不會因為退出終端而停止運行。可以讓tomcat以普通用戶身份運行,可以讓tomcat在系統啟動時自動運。
Jsvc是專為Java應用程序開發的一個工具包,其目標是把Java應用程序的普通運行轉換為以Unix守護進程的方式運行。這樣的話,可以很方便地啟動/停止應用程序。
在安裝tomcat的目錄bin/下commons-daemon-native.tar.gz或者http://commons.apache.org/proper/commons-daemon/download_daemon.cgi
# cd /usr/local/tomcat-9.0.7/bin/
# tar xvf commons-daemon-native.tar.gz
# cd commons-daemon-1.1.0-native-src/unix/
# ./configure
# make
# cp jsvc /usr/local/tomcat/bin/
創建Tomcat用戶
# useradd -r -s /sbin/nologin tomcat
# chown -R tomcat /usr/local/tomcat/
配置用systemd啟動方式的腳本
# vim /usr/lib/systemd/system/tomcat.service
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target
[Service]
Type=forking
EnvironmentFile=/usr/local/tomcat/conf/tomcat.conf
ExecStart=/usr/local/tomcat/bin/daemon.sh start
ExecStop=/usr/local/tomcat/bin/daemon.sh stop
SuccessExitStatus=143
User=tomcat
Group=tomcat
[Install]
WantedBy=multi-user.target
參數配置文件
# vim /usr/local/tomcat/conf/tomcat.conf
JAVA_HOME="/usr/local/javajdk"
CATALINA_BASE="/usr/local/tomcat"
CATALINA_HOME="/usr/local/tomcat"
TOMCAT_USER="tomcat"
#JAVA_OPTS="-Xminf0.1 -Xmaxf0.3" > 調優使用
之後可以使用以下方式管理了
# systemctl status tomcat 狀態
# systemctl start tomcat 啟動
# systemctl stop tomcat 停止
可以看到是以jsvc進行運行
# ss -nltp|grep 8080
LISTEN 0 100 :::8080 :::* users:(("jsvc",pid=2953,fd=49))
配置tomcat Web 管理
# cd /usr/local/tomcat/conf/
# cp tomcat-users.xml{,.bak}
# vim tomcat-users.xml
角色定義
1、Server Status
查看只讀服務器狀態
2、Manager App
管理app,包括war包服務的啟動、停止、reload、undeploy以及配置session的失效時間
需要開啟以下角色功能
manager-gui 允許訪問html接口(即URL路徑為/manager/html/*)
manager-script 允許訪問純文本接口(即URL路徑為/manager/text/*)
manager-jmx 允許訪問JMX代理接口(即URL路徑為/manager/jmxproxy/*)
manager-status 允許訪問Tomcat只讀狀態頁面(即URL路徑為/manager/status/*)
3、Host Manager
管理和配置Tomcat服務器
需要開啟以下角色功能
manager-gui 允許訪問html接口(即URL路徑為/manager/html/*)
admin-gui 允許訪問html接口
admin-script 允許訪問純文本接口
###
4大角色5種功能的定義格式如下
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
添加用戶名稱和密碼格式,並授權訪問角色如下
<user username="用戶名" password="密碼" roles="這裏是角色如:admin-gui,manager-gui"/>
<user username="tomcat" password="123abc" roles="admin-gui,manager-gui"/>
除了密碼限制之外,還可以通過添加或來限制遠程IP地址或主機對Manager Web應用程序的訪問權限,特別是在公網上的主機。參考網址https://tomcat.apache.org/tomcat-9.0-doc/config/valve.html#Remote_Address_Filter
以下2行看需要設置
# vim /usr/local/tomcat/webapps/manager/META-INF/context.xml
# vim /usr/local/tomcat/webapps/host-manager/META-INF/context.xml
添加允許訪問的IP範圍,否則只能本機訪問
<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|192\.168\.10\.\d+" />
<Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.f
ilters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>
修改tomcat允許上傳的文件大小
單位是字節
<multipart-config>
<!-- 50MB max -->
<max-file-size>52428800</max-file-size>
<max-request-size>52428800</max-request-size>
<file-size-threshold>0</file-size-threshold>
</multipart-config>
以上配置需要重啟tomcat服務才能生效
Tomcat 9.0 7 的兩種開機啟動方式與web頁面管理