CentOS下tomcat安裝配置
一、所需軟體包下載
Tomcat:https://archive.apache.org/dist/tomcat/
JDK:http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html#javasejdk
Tomcat | jdk |
---|---|
9.0.0.M17 (alpha) | 8 and later |
8.5.11 | 7 and later |
8.0.41 (superseded) | 7 and later |
7.0.75 | 6 and later(7 and later for WebSocket) |
版本對照:
Tomcat | jdk |
---|---|
9.0.0.M17 (alpha) | 8 and later |
8.5.11 | 7 and later |
8.0.41 (superseded) | 7 and later |
7.0.75 | 6 and later(7 and later for WebSocket) |
二、JDK和Tomcat安裝
-
JDK安裝
為了方便維護下載到/usr/local/java目錄並解壓
解壓:tar -zxvf jdk-8u91-linux-x64.tar.gz
解壓後JDK目錄為:/usr/local/java/jdk1.8.0_91
設定環境變數(根據具體版本修改配置):
編輯/etc/profile
檔案在最末尾加入以下內容:export JAVA_HOME=/usr/local/java/jdk1.8.0_91 export JRE_HOME=/usr/local/java/jdk1.8.0_91/jre export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH export PATH=$PATH:$JAVA_HOME/bin
注:路徑根據你的JAVA解壓後路徑修改即可。
儲存後執行source /etc/profile
使環境變數配置生效。
然後執行java –version
可以看到當前的JDK版本。
-
Tomcat安裝
JAVA執行環境正確安裝配置後開始下載安裝tomcat。
這裡下載到home目錄,解壓後為/home/apache-tomcat-8.5.3
,可根據需要修改即可。
為了後續的許可權控制,新增tomcat組和使用者並設定tomcat目錄為tomcat使用者所屬:groupadd tomcat useradd -g tomcat -s /sbin/nologin tomcat chown -R tomcat:tomcat /home/apache-tomcat-8.5.3
啟動tomcat: 直接使用tomcat目錄下bin目錄中startup.sh進行啟動。
停止tomcat: 直接使用tomcat目錄下bin目錄中shutdown.sh進行停止。
開機自啟動:
在/etc/rc.local檔案中新增對應啟動命令,如:/home/apache-tomcat-8.5.3/bin/startup.sh
或註冊為服務啟動:
在/etc/init.d/
目錄新建一個tomcat檔案並寫入下面內容(這裡安裝的tomcat8所以設定檔名為tomcat8):#!/bin/bash # tomcat8 # chkconfig: - 80 20 ### BEGIN INIT INFO # Provides: tomcat8 # Required-Start: $network $syslog # Required-Stop: $network $syslog # Default-Start: # Default-Stop: # Description: Tomcat 8 # Short-Description: start and stop tomcat ### END INIT INFO ## Source function library. #. /etc/rc.d/init.d/functions export JAVA_OPTS="-Dfile.encoding=UTF-8 \ -Dnet.sf.ehcache.skipUpdateCheck=true \ -XX:+UseConcMarkSweepGC \ -XX:+CMSClassUnloadingEnabled \ -XX:+UseParNewGC \ -XX:MaxPermSize=128m \ -Xms512m -Xmx512m" TOMCAT_HOME=/opt/tomcat8 TOMCAT_USER=tomcat SHUTDOWN_WAIT=20 tomcat_pid() { echo `ps aux | grep org.apache.catalina.startup.Bootstrap | grep -v grep | awk '{ print $2 }'` } start() { pid=$(tomcat_pid) if [ -n "$pid" ] then echo "Tomcat is already running (pid: $pid)" else # Start tomcat echo "Starting tomcat" ulimit -n 100000 umask 007 /bin/su -p -s /bin/sh $TOMCAT_USER $TOMCAT_HOME/bin/startup.sh fi return 0 } stop() { pid=$(tomcat_pid) if [ -n "$pid" ] then echo "Stoping Tomcat" /bin/su -p -s /bin/sh $TOMCAT_USER $TOMCAT_HOME/bin/shutdown.sh let kwait=$SHUTDOWN_WAIT count=0; until [ `ps -p $pid | grep -c $pid` = '0' ] || [ $count -gt $kwait ] do echo -n -e "\nwaiting for processes to exit"; sleep 1 let count=$count+1; done if [ $count -gt $kwait ]; then echo -n -e "\nkilling processes which didn't stop after $SHUTDOWN_WAIT seconds" kill -9 $pid fi else echo "Tomcat is not running" fi return 0 } case $1 in start) start ;; stop) stop ;; restart) stop start ;; status) pid=$(tomcat_pid) if [ -n "$pid" ] then echo "Tomcat is running with pid: $pid" else echo "Tomcat is not running" fi ;; esac exit 0
賦予該檔案執行許可權:
chmod +x /etc/init.d/tomcat8
新增自動啟動:chkconfig tomcat8 on
三、Tomcat配置
tomcat增加多站點
配置檔案:
tomcat安裝目錄下conf目錄中server.xml,
如/home/apache-tomcat-8.5.3/conf/server.xml
-
相同埠配置:
找到Host
欄位並在</host>
下面新增即可host配置欄位:<Host name="wwww.abc.com" appBase="/wwwroot/abc/" unpackWARs="true" autoDeploy="true"> <Context path="" docBase="/wwwroot/abc/" reloadable="true" deubg="0" /> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="antisec_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> <Alias>www.域名1.com</Alias> <Alias>www.域名2.com</Alias> <Alias>www.域名3.com</Alias> </Host>
把name、appBase、docBase的內容改為實際的域名和專案路徑。
<Alias>xxx</Alias>
為繫結多個域名,如果不需要在繫結其他域名則不用配置。
- 不同埠配置:
在預設</Service>後面新增以下內容:
其中Connector port、defaultHost、Hostname、appBase、docBase、日誌prefix為你實際的即可。<!--services1-start--> <Service name="Catalina"> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <!-- Define an AJP 1.3 Connector on port 8009 --> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> <Engine name="Catalina" defaultHost="www.abc.com"> <Realm className="org.apache.catalina.realm.LockOutRealm"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> </Realm> <Host name="www.abc.cn" appBase="/wwwroot/abc/" unpackWARs="true" autoDeploy="true"> <Context path="" docBase="D:\wwwroot\tomcat" reloadable="true" deubg="0" /> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="antisec_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> </Host> </Engine> </Service> <!--services1-end-->
例如下圖中8090埠為http協議埠、8010埠為AJP協議埠。這兩個埠不要和已有的services配置位元組中埠衝突。(預設的配置中http協議埠為8080、AJP埠為8009)
新增站點:
預設站點:
- 多tomcat執行
假設:
第一個tomcat資料夾為tomcat8-1,路徑為/home/tomcat8-1/
第二個tomcat資料夾為tomcat8-2,路徑為/home/tomcat8-2/
分別修改tomcat資料夾/conf目錄下server.xml的監聽埠為不同埠。
分別啟動tomcat資料夾/bin目錄下的startup.sh啟動tomcat,停止同上文。
即可執行多個tomcat。
四、Tomcat繫結SSL證照
注:根據官方文件tomcat8.5且JAVA7及其以上才支援SNI。如果tomcat版本較低且需要繫結多個域名情況下,建議使用反向代理方式部署HTTPS。
在<Connector port="8080"
配置欄位下新增443埠監聽設定即可。
配置如下:
<Connector port="443"
protocol="HTTP/1.1"
SSLEnabled="true"
scheme="https"
secure="true"
keystoreFile="pfx證照路徑"
keystoreType="PKCS12"
keystorePass="證照匯入密碼"
clientAuth="false"
ciphers="TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"
SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"
SSLCipherSuite="ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4"/>
儲存後重啟tomcat服務。
測試效果:
從上面探針可以看到我這裡使用tomcat版本為8.5.23,支援SNI,即可以繫結多個域名和對應證照。
tomcat中多域名SSL繫結使用SSLHostConfig配置位元組來分別制定每個域名對應證照檔案和設定。
這裡使用apache格式證照檔案繫結,增加內容如下:
<Connector port="443"
protocol="org.apache.coyote.http11.Http11Nio2Protocol"
maxThreads="150"
SSLEnabled="true"
defaultSSLHostConfigName="milworm.cn" >
<!--第一個域名證照設定-->
<SSLHostConfig hostName="milworm.cn" >
<Certificate certificateKeyFile="D:/server/Apache2.2/conf/cert/milwrom/private.key"
certificateFile="D:/server/Apache2.2/conf/cert/milwrom/certificate.crt"
certificateChainFile="D:/server/Apache2.2/conf/cert/milwrom/ca_bundle.crt"
type="RSA" />
</SSLHostConfig>
<!--第二個域名證照設定-->
<SSLHostConfig hostName="www.pentester.cn" >
<Certificate certificateKeyFile="D:/server/Apache2.2/conf/cert/pentester/private.key"
certificateFile="D:/server/Apache2.2/conf/cert/pentester/certificate.crt"
certificateChainFile="D:/server/Apache2.2/conf/cert/pentester/ca_bundle.crt"
type="RSA" />
</SSLHostConfig>
</Connector>
如圖:
如上,分別指定了milworm和pentester域名的證照路徑。
使用host配置位元組方式新增兩個站點,分別繫結不同域名指向不同目錄:
注:若IIS反向代理tomcat繫結https時,選擇上啟用SSL解除安裝。以免tomcat未配置HTTPS訪問的情況下請求得不到正常響應。
相關文章
- Centos安裝tomcat9及配置CentOSTomcat
- CentOS 7 yum安裝與配置 TomcatCentOSTomcat
- windows下Tomcat安裝配置WindowsTomcat
- Centos7.6下安裝配置JenkinsCentOSJenkins
- CentOS 8.2下VNC安裝與配置CentOSVNC
- centos7下cobbler安裝配置CentOS
- windows下安裝jdk+tomcat+maven並配置WindowsJDKTomcatMaven
- CentOS下安裝配置常用軟體mysql,Tomcat,JDK常見的基本問題集CentOSMySqlTomcatJDK
- 解說CentOS 7下ActiveMQ安裝配置CentOSMQ
- Centos7下安裝配置elasticsearch 6.3.1CentOSElasticsearch
- window下tomcat安裝Tomcat
- Centos7下安裝配置MySQL5.7CentOSMySql
- CentOS 下多版本 PHP 的安裝與配置CentOSPHP
- CentOS7 下 Nginx 的安裝和配置CentOSNginx
- CentOS6下mysql的安裝與配置CentOSMySql
- CentOS 7伺服器下Nginx安裝配置CentOS伺服器Nginx
- CentOS7下RabbitMQ服務安裝配置CentOSMQ
- CentOS安裝配置yumCentOS
- CentOS redis安裝配置CentOSRedis
- RabbitMQ安裝配置(CentOS)MQCentOS
- Linux(jdk+tomcat配置安裝)LinuxJDKTomcat
- 下載tomcat與安裝Tomcat
- Centos7編譯安裝Tomcat教程。CentOS編譯Tomcat
- CentOS7下RabbitMQ3.7安裝與配置CentOSMQ
- CentOS 下 MySQL 5.6 基於 RPM 的下載、安裝、配置CentOSMySql
- Centos安裝與配置RedisCentOSRedis
- Centos下安裝ffmpegCentOS
- centos下安裝dockerCentOSDocker
- Centos下安裝cassandraCentOS
- Linux系統Tomcat安裝與配置。LinuxTomcat
- Centos7-VMware+Centos7安裝配置CentOS
- Centos7安裝jenkins+docker部署tomcatCentOSJenkinsDockerTomcat
- 在CentOS7.8中安裝tomcat8CentOSTomcat
- windows下安裝Tomcat服務WindowsTomcat
- Tomcat的下載與安裝Tomcat
- CentOS.7下安裝配置FTP和SFTP服務CentOSFTP
- CentOS7.2下安裝配置Node.js和YarnCentOSNode.jsYarn
- CentOS7下MySQL5.7安裝與配置(YUM)CentOSMySql