我想使用从 jetbrains.com 下载的自包含 jar(如果它们这么叫的话)在同一台服务器(ubuntu linux)上运行两者。我认为他们使用 java 运行一些内部 tomcat/catalina 服务器。
我一直在不同的端口上运行这些并使用不同的主机名来避免会话问题(因为据我所知会话与主机名绑定)。
主机名 buildserver.local 和 youtrack.local 都指向同一个 IP 地址。但是在不同的端口上定义哪个服务器响应请求。这给我们的防火墙带来了一些麻烦,因为我们的防火墙只允许防火墙外部的 80 端口。
有没有办法配置这些服务器/服务以根据主机名而不是端口进行响应?
此外,在配置文件的 server.xml 中,Connector 节点上有一个名为“redirectPort”的属性。它有什么作用?
..弗雷德里克
编辑:
我在 apache 中创建了虚拟主机以尝试重定向到我的内部地址。
NameVirtualHost *:80
<VirtualHost *:80>
ProxyPreserveHost On
ProxyPass / http://youtrack.local:8080/
ProxyPassReverse / http://youtrack.loca:8080/
ServerName youtrack.local
ServerAdmin [email protected]
</VirtualHost>
但是我得到了 403 错误。在 Apache 错误日志中我得到了以下内容:
client denied by server configuration: proxy:http://youtrack.local:8080/
当我在工作时使用本地网络或通过 VPN 时,它可以正常工作。所以我认为这是 apache 配置的问题。有什么想法吗?
编辑2:
找到解决方案了。在 apache2/mods-enable/proxy.conf 中,需要将部分内容更改为以下内容:
<Proxy *>
AddDefaultCharset off
Order deny,allow
Deny from all
Allow from all
</Proxy>
警告:这将允许每个请求通过代理传递。您可能需要检查mod_access限制访问。
答案1
我不知道是否可以在 Tomcat 中执行某些操作来侦听 HTTP 主机标头,但如果您安装了 Apache,让它侦听端口 80,并且根据请求的 HTTP 主机(virtualdir)让它在各自的端口上建立代理连接回到 tomcat 实例。
答案2
TeamCity tar.gz 包含 Tomcat。YouTrack .jar 版本包含 Jetty。我们有简短指南关于如何设置 TeamCity 和 YouTrack 在同一台服务器上运行。