亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在一臺服務器上為多個網站設置 Tomcat (linux)

在一臺服務器上為多個網站設置 Tomcat (linux)

慕桂英4014372 2023-02-23 16:30:13
我知道這個問題可能與其他問題類似,但是,我無法解決這個問題。我有一個有 25 個網站的服務器,它們都使用 Tomcat。我正在遷移到具有 Tomcat 8(常規版本)的新服務器,而舊服務器使用“CPanel's easy tomcat”。我開始遷移一個網站,該網站現在正在新服務器上運行,但是,當從瀏覽器調用 JSP 時,瀏覽器會顯示 JSP 代碼而不是執行它。在我的舊服務器上,我不得不執行 CPanel 的 easy-tomcat 中的一項名為“安裝 servlet”的功能,我真的不知道它做了什么,但是,在執行該功能之后,Tomcat 將執行 JSP?,F在,在我的新服務器中,根據我所閱讀的內容,我已將其添加到 %CATALINA_HOME%/conf/server.xml 文件中的標簽內<Engine></Engine>(我也必須將其包含在我的舊服務器中):<Host name="mydomain.com" appBase="/home/myAccName/public_html/"><Context path="" reloadable="false" docBase="/home/myAccName/public_html" /></Host>如您所見,該應用程序不在 %CATALINA_HOME%/webapps/ 目錄下,而這正是我需要的方式。我錯過了什么?任何幫助將不勝感激我正在使用 Tomcat 8、EasyApache 4 和 CentOS 7.6
查看完整描述

3 回答

?
慕姐4208626

TA貢獻1852條經驗 獲得超7個贊

您可以創建 VirtualHosts以在一臺服務器中設置具有多個域名的多個網站。您也可以在 tomcat 7、8 和 9 中進行相同的嘗試。1.編輯您相關的 server.xml 文件并包含虛擬主機,如下所示。


確保重新啟動您的 tomcat 服務器以使應用的更改生效。


<Host name="example.com"  appBase="webapps" unpackWARs="true" autoDeploy="true">

    <Alias>www.example.com</Alias>


    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"

           prefix="example_access_log" suffix=".txt"

           pattern="%h %l %u %t %r %s %b" />


    <Context path="" docBase="/opt/tomcat/webapps/myapp1"

           debug="0" reloadable="true"/>

</Host>



<Host name="mydomain.org"  appBase="webapps" unpackWARs="true" autoDeploy="true">

    <Alias>www.mydomain.org</Alias>


    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"

           prefix="mydomain_access_log" suffix=".txt"

           pattern="%h %l %u %t %r %s %b" />


    <Context path="" docBase="/opt/tomcat/webapps/myapp2"

           debug="0" reloadable="true"/>

</Host>

解釋


例如 .com 域,/opt/tomcat/webapps/myapp1 是文檔根目錄(對于您的 web 1)。對于 mydomain.org 域,/opt/tomcat/webapps/myapp2 是文檔根目錄(對于您的 web 1)。


查看完整回答
反對 回復 2023-02-23
?
撒科打諢

TA貢獻1934條經驗 獲得超2個贊

檢查 tomcat/conf.web.xml 文件中的以下內容


  <!--Initialize Jasper prior to webapps are loaded. Documentation at /docs/jasper-howto.html -->

  <Listener className="org.apache.catalina.core.JasperListener" />


查看完整回答
反對 回復 2023-02-23
?
叮當貓咪

TA貢獻1776條經驗 獲得超12個贊

這就是我設法解決這個問題的方法。我不知道這是否是最好的方法,但它確實有效。只需執行以下 3 個步驟:


1) 在 %CATALINA_HOME%/conf/server.xml 中:


<Host name="mydomain.com" appBase="webapps" autoDeploy="false" unpackWARs="false"></Host>

2) 然后我必須添加一個文件:%CATALINA_HOME%/conf/mydomain.com/ROOT.xml


<Context displayName="My Website 1" docBase="/home/accountfolder/public_html" reloadable="true">

        <Resource

                name="jdbc/rhwebDB"

                .

                .

                .

        (database connection info, optional)

    />

</Context>

然后在 Apache 端,我必須配置 mod_proxy_ajp 連接器


我編輯了文件:


3) /etc/apache2/conf.d/userdata/std/2/accountfolder/mydomain.com/cp_jkmount.conf


<IfModule mod_jk.c>

  JkMount /*.jsp ajp13

  JkMount /servlet/* ajp13

  JkMount /servlets/* ajp13

</IfModule>


<IfModule mod_proxy_ajp.c>

  ProxyRequests Off

  <Proxy *>

    AddDefaultCharset Off

    Order deny,allow

    Allow from all

  </Proxy>


  ProxyPass / ajp://mydomain.com:8009/

  ProxyPassReverse / ajp://mydomain.com:8009/

我的應用程序/網站位于 /home/accountfolder/public_html/ 并且 %CATALINA_HOME%/webapps/ 目錄中沒有任何內容。對我來說這更好,因為我可以使用 FTP 用戶直接上傳 jsp 或任何直接在應用程序所在的位置。


如果遇到任何問題,請檢查 /home/accountfolder/public_html/ 目錄中的文件夾權限和所有者,Tomcat 需要讀取/執行權限等。如果 Tomcat 無法訪問這些文件和文件夾,將顯示 Tomcat 的 404 錯誤。


正如我在這篇文章中提到的,我的應用程序是“分解的”(如果這是正確的術語),我的意思是,它沒有打包在 WAR 文件中。


查看完整回答
反對 回復 2023-02-23
  • 3 回答
  • 0 關注
  • 155 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號