我有一个 Apache 和一个 Tomcat 在我的 Debian 服务器上运行,Apache 使用 mod_jk 代理对 Tomcat 的请求并返回。我在 Tomcat 中安装了 Jenkins。设置工作正常,代理也工作。
现在我的重写规则有问题(我认为)。
我所拥有的是:
ci.<mydomain>.com/jenkins
我想要的是:
ci.<mydomain>.com
我对 Apache 中的重写规则没有足够的经验,文档/谷歌也没有帮助我(可能我没有使用正确的关键词)。所以任何帮助表示赞赏。
这是我的设置:
Apache 版本:Apache/2.2.16 (Debian)
Tomcat 版本:Apache Tomcat/7.0.27
我的worker.properties
文件如下所示:
# Define 1 real worker using ajp13
worker.list=worker1
# Set properties for worker1 (ajp13)
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
我的子域/虚拟主机的定义:
<VirtualHost *>
ServerName ci.<mydomain>.com
ServerAlias www.ci.<mydomain>.de
ErrorLog /var/log/apache2/ci_error.log
LogLevel warn
CustomLog /var/log/apache2/ci_access.log combined
JKMount /jenkins/* worker1
JKMount /jenkins worker1
RewriteEngine on
RewriteRule ^/$ /jenkins/ [R=permanent]
RewriteRule ^/jenkins/(.*)$ ajp://localhost:8009/jenkins/$1 [P]
</VirtualHost>
Jenkins 只是我希望 Tomcat 提供的一个应用程序。大多数其他应用程序也将拥有自己的虚拟主机。据我了解 mod_jk 的东西,这个工人应该足够我所有的其他应用程序,但也许我错了。
由于我已经可以通过子域访问 Jenkins,我认为这(如前所述)只是正确的重写规则的问题。
任何帮助表示赞赏,我很感谢任何建议或提示:)