目錄java
Tomcat 服務器是一個免費的開放源代碼的Web 應用服務器,屬於輕量級應用服務器,在中小型系統和併發訪問用戶不是不少的場合下被廣泛使用,是開發和調試JSP 程序的首選。linux
Tomcat是一個JSP/Servlet容器。其做爲Servlet容器,有三種工做模式:獨立的Servlet容器、進程內的Servlet容器和進程外的Servlet容器。nginx
tomcat 現有的版本有tomcat 7 ,tomcat 8 tomcat8.5,tomcat 9
咱們能夠在圖片中看到tomcat8.0版本後續也是不會再進行更新和升級了,咱們可使用tomcat8.5和9.0web
https://tomcat.apache.org/download-90.cgiapache
https://tomcat.apache.org/download-80.cgivim
咱們能夠根據咱們須要版本和系統進行下載。centos
tomcat的安裝,因爲該應用經常使用在linux服務器上,咱們的安裝教程是基於centos7進行安裝:瀏覽器
tomcat 9 版本須要java8以上才能支持 cd /tmp && wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm rpm -ivh jdk-8u131-linux-x64.rpm 環境變量: vi + /etc/profile JAVA_HOME=/usr/java/jdk1.8.0_131 CLASSPATH=.:$JAVA_HOME/lib.tools.jar PATH=$JAVA_HOME/bin:$PATH export JAVA_HOME CLASSPATH PATH #加載環境變量 source /etc/profile
# 安裝wget yum install wget -y # 下載tomcat包 cd /tmp &&wget http://mirrors.shu.edu.cn/apache/tomcat/tomcat-9/v9.0.13/bin/apache-tomcat-9.0.13.tar.gz # 解壓 tar -xzvf apache-tomcat-9.0.13.tar.gz # 移動到指定位置並重命名 mv /tmp/apache-tomcat-9.0.13 /opt/tomcat9 # 啓動 tomcat /opt/tomcat9/bin/startup.sh 或者 /opt/tomcat9/bin/catalina.sh start # # 關閉tomcat /opt/tomcat9/bin/shutdown.sh 或者 /opt/tomcat9/bin/catalina.sh stop 還能夠直接kill 進程號,當咱們的tomcat是有用戶進行訪問的時候,咱們殺死不了這個進程,只能經過強制殺死 kill -9 # 查看當前的版本 /opt/tomcat9/bin/version.sh # 開放端口 tomcat 默認訪問端口是8080,咱們能夠在conf目錄的文件server.xml的69行進行端口更改。 firewall-cmd --add-port=8080/tcp --permanent firewall-cmd --reload 若是是在阿里雲進行配置的話,記得打開安全組的8080端口.
訪問:緩存
路徑是 ip:8080(tomcat默認是綁定ip 0.0.0.0)
tomcat
bin # 腳本啓動目錄 conf #配置文件目錄 lib #tomcat運行的依賴包 logs #日誌文件目錄 temp #臨時文件目錄 webapps # 用來存放應用程序 --docs # 文檔 --examples # 示例 --host-manager # 虛擬主機web管理界面 --manager # 管理界面 --ROOT # 默認訪問的應用程序 work # 部署的Web應用程序的臨時工做目錄,當咱們須要清除緩存的時候能夠將該目錄刪除.而後重啓動tomcat.
第一更改端口:
編輯配置文件 server.xml .
大約在69行,將 port = "8080"更改爲咱們想綁定的端口.
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
配置編碼
爲了不程序上的一些請求和返回的中文亂碼問題.咱們須要配置.
編輯配置文件 server.xml .
大約在69行後,添加 useBodyEncodingForURI="true" URIEncoding="UTF-8"
<Connector port="8080" protocol="HTTP/1.1" useBodyEncodingForURI="true" URIEncoding="UTF-8" connectionTimeout="20000" redirectPort="8443" />
配置manager
見tomcat-manager的文章
# 啓動 tomcat /opt/tomcat9/bin/startup.sh 或者 /opt/tomcat9/bin/catalina.sh start # # 關閉tomcat /opt/tomcat9/bin/shutdown.sh 或者 /opt/tomcat9/bin/catalina.sh stop 還能夠直接kill 進程號,當咱們的tomcat是有用戶進行訪問的時候,咱們殺死不了這個進程,只能經過強制殺死 kill -9 # 查看當前的版本 /opt/tomcat9/bin/version.sh
在生產環境咱們常常有這樣的需求,將tomcat的綁定ip更改.不讓外部人能夠直接訪問.
tomcat默認的綁定是 0.0.0.0 ,也就意味着這樣外網就能夠訪問咱們的tomcat,
可是咱們想要咱們的tomcat不讓外網訪問
解決方法:
更改綁定ip,綁定127.0.0.1,這樣就只能本機訪問了
編輯配置文件 server.xml .
大約在69行,在配置端口的地方,添加 :address="127.0.0.1"
<Connector port="8080" protocol="HTTP/1.1" address="127.0.0.1" connectionTimeout="20000" redirectPort="8443" />
更改防火牆規則,不對外開放8080端口.
firewall-cmd --remove-port=8080/tcp --permanent firewall-cmd --reload
經過nginx重定向的隱藏界面
使用jenkins來進行發佈war包
deploy war/ear to a container:發佈war包到服務器
deploy artifacts to maven reepository:發佈到maven服務器
WAR/EAR files: 填的是生成的wa包的路徑。ugou-admin/target/ugou-admin.war(實際路徑是:/root/.jenkins/jobs/ugou-admin-online/workspace/ugou-admin/target/ugou-admin.war)
Context path: 填的是上傳到tomcat的路徑。即便用localhost/(content path設置的名字)來訪問項目
好比個人項目訪問路徑是 :http://127.0.0.1/ugou-admin/ 那麼這裏我應該填入的就是 /ugou-admin
Container: 選擇咱們使用的tomcat版本。
Manager user name /Manager password: 填入咱們在$CATALINA_BASE/conf/tomcat-users.xml 配置的用戶名和密碼
Tomcat URL : 填入咱們的tomcat url 好比咱們設置的端口是80 那麼直接填入ip就好了 :http://127.0.0.1/,若是有端口,那麼咱們就須要填入對應的端口。
Deploy on failure : 構建失敗是否還發布。勾選表示是,不勾選表示不是,生產環境建議不勾選。
直接將 war 包放在 ./webapps 下
tomcat 會自動將war解壓
咱們能夠在 ./conf/目錄下找到server.xml文件
咱們須要在
<Context path="/djx" docBase="/tmp/djx/" reloadable="true" />
path 指的是 訪問路徑 docBase 指的是項目存放路徑 reloadable 設置爲true表示Catalina將監視 /WEB-INF/classes/和/WEB-INF/lib的文件,一旦發生更改將自動從新加載Web應用程序。它能夠在在開發的時候使用,但須要消耗更多資源,官方文檔寫到不建議在生產環境上使用,因此它的默認值是false. 8.0版本文檔 Set to true if you want Catalina to monitor classes in /WEB-INF/classes/ and /WEB-INF/lib for changes, and automatically reload the web application if a change is detected. This feature is very useful during application development, but it requires significant runtime overhead and is not recommended for use on deployed production applications. That's why the default setting for this attribute is false. You can use the Manager web application, however, to trigger reloads of deployed applications on demand.
配置示例:
在 ./conf/Catalina/localhost/ 下添加xml配置文件.
示例: 我要讓/tmp/www/ 裏的網站部署在tomcat上 。
vim djx.xml # 文件的名稱也就是咱們後面訪問時要在ip端口加的後綴
djx.xml 內容,docBase 後面填入項目的路徑
<Context docBase="/tmp/www/" />
而後咱們重啓tomcat,而後在瀏覽器 192.168.1.198/djx/訪問的文件名 便可訪問到咱們的項目文件了
注意點一
方法三中若是我想直接經過ip+端口就能直接訪問到我部署的項目,那麼咱們這個xml 文件的名稱就應該是 ROOT.xml(要全都大寫哦)
第三種的文件命名示例:
注意點二
對於參數reloadable="true" ,在方法二特別說明了,你們注意。