Apache-2.2
到 Tomcat 的 SSL 連接(在 Apache - mod_jk 之後)
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)