【问题标题】:Tomcat, mod_jk, Plesk and SSL setup problemsTomcat、mod_jk、Plesk 和 SSL 设置问题
【发布时间】:2020-09-19 03:59:40
【问题描述】:

我的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,因为地址已在使用中。我认为原因是 Plesk 使用了端口 8443。然后我将端口 8443 更改为 8445 并且 tomcat 开始以 https 工作,但显然由于自签名证书而出现了一些错误。

仍然无法解决问题:

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

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

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

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

请指教

【问题讨论】:

    标签: java linux tomcat plesk mod-jk


    【解决方案1】:

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

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

    【讨论】:

    • Pandurang 我升级了 Plesk、tomcat 和 java。再次卡住将 ssl 请求转发到 plesk httpd。现在一切正常,但页面显示 HTTP 状态 404 而不是 servlet。我仔细检查了 web.xml 我的类 URL 模式,但一切都是徒劳的。我为 tomcat 使用 8445 ssl 端口,而 plesk 使用 8443 来显示页面。是这个问题吗?
    猜你喜欢
    • 2018-04-01
    • 2015-05-27
    • 2016-05-04
    • 1970-01-01
    • 1970-01-01
    • 2012-01-14
    • 1970-01-01
    • 1970-01-01
    • 2011-08-29
    相关资源
    最近更新 更多