在 ssl VirtualHost 中设置 Apache mod_jk
Setting up Apache mod_jk in ssl VirtualHost
我在将我的 Apache mod_jk 配置从它自己的 VirtualHost 配置移动到我的主 ssl VirtualHost 配置时遇到问题。
Tomcat 使用自己的域使用 mod_jk 和 VirtualHost 配置工作正常 - 工作配置....
LoadModule jk_module /etc/httpd/modules/mod_jk.so
JkWorkersFile /etc/httpd/conf.d/workers.properties
JkShmFile /var/log/httpd/mod_jk.shm
JkLogFile /var/log/httpd/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
<VirtualHost *:80>
ServerName <my cname>
DocumentRoot /opt/appserver/webapps/ROOT
DirectoryIndex index_page.jsp
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /opt/appserver/webapps/ROOT>
AllowOverride None
Options FollowSymLinks
Order allow,deny
allow from all
</Directory>
JkMount /* ajp13
</VirtualHost>
但是因为我想将我的 Tomcat 表单嵌入到我的 ssl 主服务器页面中(不能混合使用 http 和 https)我需要将我的 mod_jk 配置移动到我的主 ssl VirtualHost 作为子文件夹。我尝试了以下更改,但在尝试访问 https:// 时出现 Tomcat 错误 'HTTP Status 404 - /servlet/'
新服务器配置:
<VirtualHost _default_:443>
...lots of my main ssl server config stuff...
Alias /servlet /opt/appserver/webapps/ROOT
JkMount /servlet/* ajp13
<Directory /opt/appserver/webapps/ROOT>
AllowOverride None
Options FollowSymLinks
Order allow,deny
allow from all
DirectoryIndex index_page.jsp
</Directory>
</VirtualHost>
- 确保您的域证书生成准确
- 在 /etc/apache2/ 目录中复制 *key.pem 和 *cert.pem
- 写下以下内容
<VirtualHost _default_:443>
DocumentRoot "/opt/appserver/webapps/Your-Project-Directory"
ServerName YourDomain.com
ErrorLog "/var/log/apache2/https_YourDomain.com-error_log"
CustomLog "/var/log/apache2/https_YourDomain.com-access_log"
common SSLEngine On
SSLCertificateFile /etc/apache2/*cert.pem
SSLCertificateKeyFile /etc/apache2/*key.pem
JkMountCopy On
JkMount /* ajp13
</VirtualHost>
- 在 /etc/httpd/httpd.conf 文件中添加 Listen 443,只需将此行添加到您在其开头找到的 Listen 80 下即可。
现在您可以同时访问 http 和 https
原来是 Apache Alias 问题。实际上我无法让 mod_jk 与 Apache 别名一起工作,所以我将 Tomcat 内容放在 Apache DirectoryRoot 中(原始配置但启用了 ssl)并使用:
SetEnvIf Request_URI "/content/*" no-jk
Alias /content /path/to/content
启用非Tomcat内容。读者还应该检查(如果他们正在使用这种技术)他们已经将 'RewriteBase /content' 添加到他们的 .htaccess 文件中。
我在将我的 Apache mod_jk 配置从它自己的 VirtualHost 配置移动到我的主 ssl VirtualHost 配置时遇到问题。
Tomcat 使用自己的域使用 mod_jk 和 VirtualHost 配置工作正常 - 工作配置....
LoadModule jk_module /etc/httpd/modules/mod_jk.so
JkWorkersFile /etc/httpd/conf.d/workers.properties
JkShmFile /var/log/httpd/mod_jk.shm
JkLogFile /var/log/httpd/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
<VirtualHost *:80>
ServerName <my cname>
DocumentRoot /opt/appserver/webapps/ROOT
DirectoryIndex index_page.jsp
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /opt/appserver/webapps/ROOT>
AllowOverride None
Options FollowSymLinks
Order allow,deny
allow from all
</Directory>
JkMount /* ajp13
</VirtualHost>
但是因为我想将我的 Tomcat 表单嵌入到我的 ssl 主服务器页面中(不能混合使用 http 和 https)我需要将我的 mod_jk 配置移动到我的主 ssl VirtualHost 作为子文件夹。我尝试了以下更改,但在尝试访问 https:// 时出现 Tomcat 错误 'HTTP Status 404 - /servlet/'
新服务器配置:
<VirtualHost _default_:443>
...lots of my main ssl server config stuff...
Alias /servlet /opt/appserver/webapps/ROOT
JkMount /servlet/* ajp13
<Directory /opt/appserver/webapps/ROOT>
AllowOverride None
Options FollowSymLinks
Order allow,deny
allow from all
DirectoryIndex index_page.jsp
</Directory>
</VirtualHost>
- 确保您的域证书生成准确
- 在 /etc/apache2/ 目录中复制 *key.pem 和 *cert.pem
- 写下以下内容
<VirtualHost _default_:443>
DocumentRoot "/opt/appserver/webapps/Your-Project-Directory"
ServerName YourDomain.com
ErrorLog "/var/log/apache2/https_YourDomain.com-error_log"
CustomLog "/var/log/apache2/https_YourDomain.com-access_log"
common SSLEngine On
SSLCertificateFile /etc/apache2/*cert.pem
SSLCertificateKeyFile /etc/apache2/*key.pem
JkMountCopy On
JkMount /* ajp13
</VirtualHost>
- 在 /etc/httpd/httpd.conf 文件中添加 Listen 443,只需将此行添加到您在其开头找到的 Listen 80 下即可。
现在您可以同时访问 http 和 https
原来是 Apache Alias 问题。实际上我无法让 mod_jk 与 Apache 别名一起工作,所以我将 Tomcat 内容放在 Apache DirectoryRoot 中(原始配置但启用了 ssl)并使用:
SetEnvIf Request_URI "/content/*" no-jk
Alias /content /path/to/content
启用非Tomcat内容。读者还应该检查(如果他们正在使用这种技术)他们已经将 'RewriteBase /content' 添加到他们的 .htaccess 文件中。