好
因此,我httpd
前段时间安装了Apache ,最近又回到了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 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
文件夹中。