<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
tomcat設定好了以後預設是使用8080埠存取的,也就是需要在使用"域名.com:8080"才能存取。這篇總結一下如何修改tomcat設定,使可以用"http://域名.com"或"https://域名.com" 存取。
環境設定:
前提條件:
設定存取80埠即"http://域名.com"不需要證書
設定存取443埠即"https://域名.com" 需要SSL證書,證書可以從你購買伺服器的運營商那裡獲取
話不多說,直接進入正題
編輯在 /usr/tomcat/*/conf 目錄(這個目錄是你安裝tomcat的目錄)下的 server.xml 檔案。新增如下內容:
// An highlighted block <Connector port="443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" #證書儲存的路徑 keystoreFile="/usr/*/conf/域名.com.jks" #金鑰庫密碼 keystorePass="******" clientAuth="false"/>
詳細 server.xml 檔案和一些引數解釋如下(可以直接複製過去):
<?xml version="1.0" encoding="UTF-8"?> <!-- Server 根元素,建立⼀個Server範例,⼦標籤有 Listener、GlobalNamingResources、Service port:關閉伺服器的監聽端⼝ shutdown:關閉伺服器的指令字串 --> <Server port="8005" shutdown="SHUTDOWN"> <!-- 建立 5 個監聽器 start --> <!-- 以⽇志形式輸出伺服器 、作業系統、JVM的版本資訊 --> <Listener className="org.apache.catalina.startup.VersionLoggerListener"/> <!-- 載入(伺服器啟動) 和 銷燬 (伺服器停⽌) APR。 如果找不到APR庫, 則會輸出⽇志, 並不影響 Tomcat啟動 --> <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on"/> <!-- 避免JRE記憶體漏失問題 --> <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/> <!-- 載入(伺服器啟動) 和 銷燬(伺服器停⽌) 全域性命名服務 --> <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/> <!-- 在Context停⽌時重建 Executor 池中的執行緒, 以避免ThreadLocal 相關的記憶體漏失 --> <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/> <!-- 建立 5 個監聽器 end --> <!-- 定義伺服器全域性的JNDI 資源 命名服務 --> <GlobalNamingResources> <Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml"/> </GlobalNamingResources> <!-- 該標籤⽤於建立 Service 範例,預設使⽤ org.apache.catalina.core.StandardService。 預設情況下,Tomcat 僅指定了Service 的名稱, 值為 "Catalina"。 Service ⼦標籤為 : Listener、Executor、Connector、Engine, 其中: Listener ⽤於為Service新增⽣命週期監聽器, Executor ⽤於設定Service 共用執行緒池,(可以給多個 Connector聯結器使用) Connector ⽤於設定Service 包含的連結器, Engine ⽤於設定Service中連結器對應的Servlet 容器引擎 --> <Service name="Catalina"> <!-- 預設情況下,Service 並未新增共用執行緒池設定。 如果我們想新增⼀個執行緒池, 可以在<Executor> 下新增如下設定: name:執行緒池名稱,⽤於 Connector中指定 namePrefix:所建立的每個執行緒的名稱字首,⼀個單獨的執行緒名稱為:namePrefix+執行緒編號 maxThreads:池中最⼤執行緒數 minSpareThreads:活躍執行緒數,也就是核⼼池執行緒數,這些執行緒不會被銷燬,會⼀直存在 maxIdleTime:執行緒空閒時間,超過該時間後,空閒執行緒會被銷燬,預設值為6000(1分鐘),單位毫秒 maxQueueSize:在被執⾏前最⼤執行緒排隊數⽬,預設為Int的最⼤值,也就是⼴義的⽆限。除⾮特殊情況,這個值 不需要更改,否則會有請求不會被處理的情況發⽣ prestartminSpareThreads:啟動執行緒池時是否啟動 minSpareThreads部分執行緒。預設值為false,即不啟動 threadPriority:執行緒池中執行緒優先順序,預設值為5,值從1到10 className:執行緒池實現類,未指定情況下,預設實現類為 org.apache.catalina.core.StandardThreadExecutor。 如果想使⽤⾃定義執行緒池⾸先需要實現org.apache.catalina.Executor接⼝--> <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="200" minSpareThreads="100" maxIdleTime="60000" maxQueueSize="Integer.MAX_VALUE" prestartminSpareThreads="true" threadPriority="5" className="org.apache.catalina.core.StandardThreadExecutor"/> <!-- Connector 標籤⽤於建立連結器範例,預設情況下,server.xml 設定了兩個連結器,⼀個⽀持HTTP協定,⼀個⽀持AJP協定 ⼤多數情況下,我們並不需要新增連結器設定,只是根據需要對已有連結器進⾏優化 port: 端⼝號,Connector ⽤於建立伺服器端Socket 並進⾏監聽, 以等待使用者端請求連結。如果該屬性設定為0, Tomcat將會隨機選擇⼀個可⽤的端⼝號給當前Connector 使⽤ protocol: 當前Connector ⽀持的存取協定。 預設為 HTTP/1.1 , 並採⽤⾃動切換機制選擇⼀個基於 JAVA NIO 的連結器或者基於本地APR的連結器(根據本地是否含有Tomcat的本地庫判定) connectionTimeOut: Connector 接收連結後的等待超時時間, 單位為 毫秒。 -1 表示不超時。 redirectPort: 如果當前接收的是一個 https 的請求,那麼tomcat 會將請求轉發到 redirectPort指定的埠。 比如現在設定的:8443 埠當前Connector 不⽀持SSL請求, 接收到了⼀個請求, 並且也符合security-constraint 約束,需要SSL傳輸,Catalina⾃動將請求重定向到指定的端⼝。 executor: 指定共用執行緒池的名稱, 也可以通過maxThreads、minSpareThreads 等屬性設定內部執行緒池。 URIEncoding: ⽤於指定編碼URI的字元編碼, Tomcat8.x版本預設的編碼為 UTF-8 , Tomcat7.x版本預設為ISO8859-1 --> <!--org.apache.coyote.http11.Http11NioProtocol, ⾮阻塞式 Java NIO 連結器,tomcat8設定nio會報錯,可能是已經整合了nio的原因--> <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443" executor="tomcatThreadPool" URIEncoding="utf-8"/> <!-- certificateKeystoreFile 用於指定證書所在的目錄 ; certificateKeystorePassword 用於指定證書的密碼;type是使用的加密演演算法--> <Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" schema="https" secure="true" SSLEnabled="true"> <SSLHostConfig> <Certificate certificateKeystoreFile="conf/你的域名.cn.jks" certificateKeystorePassword="你申請證書時提交密碼" type="RSA" /> </SSLHostConfig> </Connector> <!-- Define an AJP 1.3 Connector on port 8009 --> <Connector protocol="AJP/1.3" address="::1" port="8009" redirectPort="443" /> <!--name: ⽤於指定Engine 的名稱, 預設為Catalina defaultHost:預設使⽤的虛擬主機名稱, 當用戶端請求指向的主機⽆效時, 將交由預設的虛擬主機處 理, 預設為localhost--> <Engine name="Catalina" defaultHost="localhost"> <Realm className="org.apache.catalina.realm.LockOutRealm"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> </Realm> <!--Host 標籤⽤於設定⼀個虛擬主機 name:該host的名稱 appBase :指定 war包放置的路徑,可以是絕對路徑,也可以是相對路徑(相對路徑,相對的就是tomcat的安裝目錄 unpackWARs :是否自動解壓 war包 autoDeploy:是否自動部署 (有點熱部署的效果)--> <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <!-- 記錄當前 host 處理請求的紀錄檔 --> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b"/> </Host> </Engine> </Service> </Server>
其中有一個需要注意的地方就是,證書的位置certificateKeystoreFile可以填絕對路徑,也可以填相對路徑。如果填寫的是相對路徑,那地址應該是conf的上一層目錄(如果你把jks檔案放在server.xml的同級目錄下,此處應該填"conf/域名.jks"),我因為這個踩過一些坑。
如果您需要將 HTTP 請求自動重定向到 HTTPS。您可以通過以下操作設定:
編輯 /usr/*/conf 目錄下的 web.xml 檔案,找到 標籤。
請在結束標籤 後面換行,並新增以下內容:
<login-config> <!-- Authorization setting for SSL --> <auth-method>CLIENT-CERT</auth-method> <realm-name>Client Cert Users-only Area</realm-name> </login-config> <security-constraint> <!-- Authorization setting for SSL --> <web-resource-collection> <web-resource-name>SSL</web-resource-name> <url-pattern>/*</url-pattern> </web-resource-collection> <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> </security-constraint>
修改server.xml檔案後,停止tomcat服務,在/usr/tomcat/*/bin目錄下輸入:
./shutdown.sh
然後以下命令檢查組態檔是否有誤,如果有報錯資訊就在網上搜尋一下或者自己解決就好了:
./configtest.sh
以上步驟沒有問題以後,輸入以下命令就可以使用"https://域名.com"存取tomcat了。
./startup.sh
網上的教學大部分都只說./shutdown.sh和./startup.sh兩個命令重啟tomcat,但是有時候重啟時有一些報錯資訊並不顯示,就是存取80埠沒有問題,但是443埠設定有錯無法存取。
還要注意的是,./configtest.sh命令一定要在./shutdown.sh停止tomcat之後執行,要不然會出現埠已被佔用的錯誤。
最近在忙最近的畢業設計,最近做後端介面和最近寫網頁,然後在騰訊雲上面買了一臺伺服器還有一個域名(總共花了80塊錢,租了一年)。花了半個月終於備案完成,於是迫不及待的把自己寫的網頁傳上去。其中設定docker、tomcat、mysql、rabbitmq、redis都遇到一些坑。希望可以幫到大家吧。
[1]: 騰訊雲Tomcat 伺服器 SSL 證書安裝部署(JKS 格式)
到此這篇關於Tomcat10設定埠號為443(使用https存取)的文章就介紹到這了,更多相關Tomcat10設定埠號為443內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45