Apache-2.2

到 Tomcat 的 SSL 連接(在 Apache - mod_jk 之後)

  • March 12, 2012

SSL 連接適用於 Apache 伺服器上的每個頁面,但服務於 Tomcat 的頁面除外。Tomcat 在 http 連接上執行良好。

設置:

  • 阿帕奇/2.2.21
  • Tomcat-7.0.23
  • mod_jk 連接它們
  • 自簽名證書

什麼在起作用

如果我嘗試通過 http 連接到 tomcat 一切正常。JkMount 指令中指定的每個頁面都轉發給 Tomcat,所有其他頁面由 Apache 負責。我有兩台虛擬主機——一台用於埠 80,一台用於 443。80 的工作配置是:

<VirtualHost *:80>
ServerName *******

JkMount /cas ajp13_worker
JkMount /cas/* ajp13_worker

</VirtualHost>

我的問題是什麼

當我嘗試對埠 443 使用具有類似 vhost 配置的 https - apache 日誌中有一個條目:

File does not exist: ****/apache2/htdocs/cas

配置文件

埠 443 上的 vhost 設置:

<VirtualHost ****:443>
ServerName *******

JkMount /cas ajp13_worker
JkMount /cas/* ajp13_worker

</VirtualHost>

在 httpd.conf 中 mod_jk 的部分是:

JkWorkersFile ****/tomcat-7.0.23/conf/workers.properties
JkLogFile ****/apache2/logs/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "

(I've read that I need the following lines ... )
JkExtractSSL On
JkHTTPSIndicator HTTPS
JkSESSIONIndicator SSL_SESSION_ID
JkCIPHERIndicator SSL_CIPHER
JkCERTSIndicator SSL_CLIENT_CERT

在 httpd-ssl.conf 中,我指定了證書路徑… https 對除 Tomcat 以外的所有頁面都正常工作。

DocumentRoot 在 httpd.conf 中指定。

問題

是什麼控制 Apache 是在 DocumentRoot 目錄中搜尋還是將請求轉發到 Tomcat?我究竟做錯了什麼?

謝謝 :)

檢查輸出apache2ctl -S- 首先在埠上傳入的第二個 SSL 虛擬主機將獲取請求,而不是所需的虛擬主機。

是什麼控制 Apache 是在 DocumentRoot 目錄中搜尋還是將請求轉發到 Tomcat?

兩個因素:相關指令的順序和定義<Directory>,以及JKMount位置。

我很好奇為什麼你認為你需要兩個 - 只需使用 /cas/* (如果 /cas 不存在,apache 會自動將 /cas 的請求重定向到 /cas/,基於 DirectorySlash 設置,預設為 On)

引用自:https://serverfault.com/questions/368722