Apache 在前,Tomcat 在後,但 SSL 不起作用?

Apache 在前,Tomcat 在後,但 SSL 不起作用?

我將 Apache 設定為我的 Web 伺服器,並且 Tomcat 透過 掛鉤到 Apache mod_jk,因此使用者永遠不會與 Tomcat 互動。

我已經在 Apache 上設定了 SSL,並且可以使用 來存取它https://localhost,但是當我嘗試在 處存取我的應用程式時https://localhost/app,出現directory not found錯誤。

問題是當我使用常規 http 時,我可以很好地實現它:http://localhost/app

我必須編輯什麼才能使此連接正常工作?

  • 我已取消註解 AJP 連接器server.xml
  • 我已將我的虛擬主機新增至httpd.conf

我缺什麼?

答案1

Apache 將 http 和 https 視為不同的虛擬伺服器。您是否在兩個虛擬主機下都設定了反向代理?

答案2

您需要將您的設定從 http 複製到 https - 如果您有 http 連接器,則不需要 ajp 連接器

看看它是如何設定的 - 可能它執行代理傳遞或使用 RewriteRule ,末尾帶有 P ,這是代理。

答案3

您對工人的定義可能是錯誤的。檢查workers.properties 的工作類型。如果是 ajp13,請按原樣取消 Tomcat 中 ajp 部分的註解。 mod_jk 通常使用 ajp13 作為類型。

答案4

如果使用mod_jk,則需要Tomcat中的AJP連接器。

在大多數情況下,如果工作程序出現設定問題,Apache 將回答 500 錯誤(伺服器錯誤)。如果收到 404,這是因為請求未傳遞到 Tomcat 伺服器(或從 Tomcat 的角度來看 URL 無效)。檢查 Apache 配置中的 JkMount 是否存在且正確(對於 443 連接埠)。

若要偵錯 mod_jk 的問題,請開啟 mod_jk 中的偵錯日誌並查看 Apache 日誌。在 mod_jk 配置(一般為 jk.conf)中加入以下行:

JkLogFile /var/log/apache2/mod_jk.log

JkLogLevel 調試

您應該在啟動時看到一些日誌以及每個請求的一些有趣的詳細資訊。

我為 Apache2 + SSL + JBoss 做了這種設定。您可以在以下位置找到其他詳細資訊和優化提示: 在生產環境中的 Apache 伺服器後面部署 J2EE 應用程式

相關內容