【发布时间】: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 工作,但显然由于自签名证书而出现了一些错误。
仍然无法解决问题:
https://domain.com:8445 --> 在 Plesk 上呈现 servlet 页面,但不呈现来自 http (Apache) 的页面
- 为什么 tomcat 可以在 Plesk http 页面上正常工作,但不能正常工作 HTTPS 页面?
- 为什么 tomcat 请求不会发送到 Plesk 的 https 域
- Plesk 占用 8443 端口用于显示域,443 用于 devcot。
- 我不知道我在哪里犯错了,因为这第四天我一无所知,最后决定在这个论坛上寻求帮助
请指教
【问题讨论】:
标签: java linux tomcat plesk mod-jk