中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Tomcat10如何配置端口號為443

發布時間:2022-07-27 13:45:19 來源:億速云 閱讀:283 作者:iii 欄目:開發技術

這篇文章主要介紹“Tomcat10如何配置端口號為443”,在日常操作中,相信很多人在Tomcat10如何配置端口號為443問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Tomcat10如何配置端口號為443”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

前期準備

環境配置:

  • 騰訊云輕量應用服務器: CentOS 8.2 64bit

  • 遠程訪問推薦使用圖形化界面(Mac 建議Royal TSX,Windows建議Mobaxterm)

  • Tomcat 10.0.4 ;

  • Java 1.8 ;

前提條件:

配置訪問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 &quot;%r&quot; %s %b"/>
            </Host>
        </Engine>
    </Service>
</Server>

其中有一個需要注意的地方就是,證書的位置certificateKeystoreFile可以填絕對路徑,也可以填相對路徑。如果填寫的是相對路徑,那地址應該是conf的上一層目錄(如果你把jks文件放在server.xml的同級目錄下,此處應該填"conf/域名.jks"),我因為這個踩過一些坑。

HTTP 自動跳轉 HTTPS 的安全配置(可選)

如果您需要將 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之后執行,要不然會出現端口已被占用的錯誤。

到此,關于“Tomcat10如何配置端口號為443”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

英吉沙县| 日喀则市| 寿光市| 永济市| 武鸣县| 徐汇区| 介休市| 海丰县| 鸡东县| 广西| 柞水县| 当雄县| SHOW| 板桥市| 湘乡市| 唐河县| 共和县| 天峨县| 城固县| 理塘县| 乾安县| 涿鹿县| 汉寿县| 新竹县| 樟树市| 鹿泉市| 石柱| 和政县| 富裕县| 正定县| 田阳县| 濮阳市| 平舆县| 新和县| 禹城市| 大化| 息烽县| 工布江达县| 广河县| 潼关县| 洪泽县|