Tomcat、mod_jk、Plesk 和 SSL 设置问题

Tomcat, mod_jk, Plesk and SSL setup problems

我的workers.properties:

vi /etc/httpd/conf.d/workers.properties
worker.list=worker1
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009

我的mod_jk.conf

vi /etc/httpd/conf.d/mod_jk.conf
JkWorkersFile /etc/httpd/conf.d/workers.properties
JkShmFile     /var/log/httpd/mod_jk.shm
JkLogFile     /var/log/httpd/mod_jk.log
JkLogLevel    info
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"

添加到 Tomcat server.xml

<Engine name="Catalina" defaultHost="localhost" jvmRoute="worker1">
<Host name="domain.com" appBase="/opt/tomcat/webapps/">
<Context path="" docBase="domain-dir"/>
<Alias>www.domain.com</Alias>
</Host>

在 plesk 域名中添加了 mod_jk 个条目,如下所示:

vi /var/www/vhosts/system/domain.com/conf/vhost.conf
<IfModule mod_jk.c>
JkMount /servlet/* worker1
JkMount /*.jsp worker1
</IfModule>

直到这里一切开始正常工作,但 tomcat 正在重定向到端口 80 上的 apache,同时它对所有托管域使用端口 8443。

然后我尝试通过 java keytool 实用程序添加 SSL,并将以下内容添加到 tomcat server.xml

<Connector port="8445" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" keystoreFile="/opt/tomcat/ssl/keytool.jks" keystoreType="JKS" keystorePass="pass"/>

错误是 ajp 无法初始化,因为地址已被使用。我认为原因是端口 8443 被 Plesk 使用。然后我将端口 8443 更改为 8445,tomcat 开始以 https 工作,但由于自签名证书,显然有一些错误。

仍然无法解决问题:

http://domain.com --> 正在工作

https://domain.com --> 不工作

https://domain.com:8445 --> 呈现 servlet 页面而不是来自 http (Apache) 的页面在 Plesk 上

  1. 为什么 tomcat 在 Plesk http 页面上工作正常而在 HTTPS 页面?
  2. 为什么 tomcat 请求不会转到 Plesk 的 https 域
  3. Plesk占用8443端口用于显示域,443端口用于devcot。
  4. 我不知道我在哪里犯了错误,因为这第 4 天我一无所知,最后决定在这个论坛上寻求帮助

请指教

您想在 Apache httpd 中通过 HTTPS 访问应用程序吗?如果是,请在 Apache httpd SSL VirtualHost 中添加所有 JKmount 条目。

JkMount /servlet/* worker1
JkMount /*.jsp worker1