好的
所以我httpd
前一阵子安装了 Apache,最近又回来尝试设置 SSL 并让它服务于几个不同的 tomcat 服务器。
目前,我有两个完全独立的 Tomcat 实例,它们提供略有不同的版本(一个用于开发,一个用于演示)我的 Web 应用程序到两个不同的端口:
example.com:8081
example.com:8082
我已经成功地(早在一月份)使用以下代码mod_jk
为httpd
这些相同的 Tomcat 实例提供服务,http://www.example.com:8090/dev
并且http://www.example.com:8090/demo
(8090 因为我在此阶段通过 Jetty 在 8080 上运行了另一个应用程序)httpd.conf
:
LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel debug
<VirtualHost *:8090>
JkMount /devd* tomcatDev
JkMount /demo* tomcatDemo
</VirtualHost>
我不想做的是启用 SSL。
我已将以下内容添加到httpd.conf
:
Listen 443
<VirtualHost _default_:443>
JkMount /dev* tomcatDev
JkMount /demo* tomcatDemo
SSLEngine on
SSLCertificateFile "/opt/httpd/conf/localhost.crt"
SSLCertificateKeyFile "/opt/httpd/conf/keystore.key"
</VirtualHost>
但是当我尝试重新启动 Apache 时apachectl restart
(是的,在关闭我提到的其他应用程序之后,它不会玩弄 https 连接)我不断收到错误:
无效的命令“SSLEngine”,可能拼写错误或由未包含在服务器配置中的模块定义。httpd 没有运行,正在尝试启动
我查看了httpd/modules
目录,确实没有mod_ssl
,只有mod_jk.so
和httpd.exp
。
我试过用 yum 安装mod_ssl
,它说它已经安装了。事实上,我可以找到mod_ssl.so
,/usr/lib/httpd/modules
但这不是我安装的路径,httpd
它/opt/httpd
实际上/usr/lib/httpd
只包含modules
目录。
谁能告诉我如何mod_ssl
为我的安装位置正确安装,httpd
以便我可以克服这个错误?