Max*_*ger 7 redmine virtualhost tomcat6 jenkins apache-2.2
我有一个 Ubuntu 12.04 服务器,它已经在独立的 apache 上安装了Redmine(/opt/redmine 下的所有内容)。我想在同一个系统上安装一个 Jenkins 实例,而不会对现有设置进行太多修改。我希望这两个服务可以分别在 sub.domain.com/redmine 和 sub.domain.com/jenkins 下访问。
我将 Redmines apache 更改为侦听端口 8081 而不是 80,通过 apt 安装了一个额外的 apache,并设置了一个将“/redmine”代理到 localhost:8081/redmine 的虚拟主机。到目前为止一切正常。Redmine 可以像以前一样访问。但是,当我以相同的方式设置 Jenkins 时,tomcat 侦听端口 8080、URL 前缀“jenkins”和一个新的虚拟主机,Redmine 停止工作,即我得到 404。当我删除 Jenkins 虚拟主机时,Redmine 工作再次。
这是 /etc/apache2/sites-available 下的两个文件,我通过 a2ensite/a2dissite 启用/禁用它们。
红米:
<VirtualHost *:80>
ServerAdmin webmaster@domain.com
ServerName sub.domain.com
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPreserveHost off
ProxyPass /redmine http://localhost:8081/redmine
ProxyPassReverse /redmine http://localhost:8081/redmine
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
詹金斯:
<VirtualHost *:80>
ServerAdmin webmaster@domain.com
ServerName sub.domain.com
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPreserveHost off
ProxyPass /jenkins http://localhost:8080/jenkins
ProxyPassReverse /jenkins http://localhost:8080/jenkins
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
我认为这些文件中的一个或两个存在问题。我从 Jenkins 教程中复制了它们,该教程假设只有一个虚拟主机。无论我在哪里为多个主机寻找 mod_proxy 解决方案,我都会找到将不同端口映射到不同域(即具有不同 ServerName)的示例。但这不是我想要的。我必须使用 RewriteEngine 吗?
Apache 根据 HTTP 主机标头匹配虚拟主机。由于无论客户端访问的是 redmine 还是 jenkins,主机名都是相同的,因此两者必须位于同一虚拟主机中。
当前配置中发生的情况是,Apache 在看到主机标头后立即确定要匹配的虚拟主机。因为按字母顺序“j”位于“r”之前,所以它会优先考虑您的 jenkins vhost 文件,即使两者都匹配。
该<Proxy>
指令已经内置了此功能!
您可以在单个虚拟主机中使用类似以下内容来实现您的目标:
<VirtualHost *:80>
ServerAdmin webmaster@domain.com
ServerName sub.domain.com
ProxyRequests Off
<Proxy http://sub.domain.com/jenkins>
Order deny,allow
Allow from all
ProxyPreserveHost off
ProxyPass http://localhost:8080/jenkins
ProxyPassReverse http://localhost:8080/jenkins
</Proxy>
<Proxy http://sub.domain.com/redmine>
Order deny,allow
Allow from all
ProxyPreserveHost off
ProxyPass http://localhost:8081/redmine
ProxyPassReverse http://localhost:8081/redmine
</Proxy>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13497 次 |
最近记录: |