好
因此,我httpd前段时间安装了Apache ,最近又回到了Apache ,尝试设置SSL并使其服务于多个不同的tomcat服务器。
目前,我有两个完全独立的Tomcat实例,它们为两个不同的端口提供了稍微不同的版本(一个用于开发,一个用于演示),将我的Web应用程序提供给两个端口:
example.com:8081example.com:8082
我已经成功地(回溯到一月份)使用mod_jk了httpd相同的Tomcat实例,http://www.example.com:8090/dev并且http://www.example.com:8090/demo (在此阶段,8090 cos我已经通过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以便我能够克服此错误?
mod_ssl.so中完全丢失了。证明它与基本安装分开,并且mod_ssl位于yum软件包管理器中的软件包下。使用下载,yum install mod_ssl然后出现在modules文件夹中。