在同一伺服器和同一埠上執行 TeamCity 和 YouTrack?
我想使用從 jetbrains.com 下載的自包含 jars(如果它們被稱為)在同一伺服器(ubuntu linux)上執行兩者。我認為他們使用 java 執行一些內部 tomcat/catalina 伺服器。
我一直在不同的埠上執行這些並使用不同的主機名來避免會話問題(因為據我了解會話綁定到主機名)。
主機名 buildserver.local 和 youtrack.local 都指向同一個 IP 地址。但是在不同的埠上定義了響應請求的伺服器。這對只允許來自防火牆外部的埠 80 的防火牆造成了一些麻煩。
無論如何配置這些伺服器/服務以基於主機名而不是埠進行響應?
同樣在配置文件中,連接器節點上有一個名為 server.xml 中的“redirectPort”的屬性。它有什麼作用?
..弗雷德里克
編輯:
我在 apache 中創建了虛擬主機以嘗試重定向到我的內部地址。
NameVirtualHost *:80 <VirtualHost *:80> ProxyPreserveHost On ProxyPass / http://youtrack.local:8080/ ProxyPassReverse / http://youtrack.loca:8080/ ServerName youtrack.local ServerAdmin youtrack@something.com </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以限制訪問。
我不知道您是否可以在 Tomcat 中執行某些操作來偵聽 HTTP 主機標頭,但是如果您安裝 Apache,讓它在埠 80 上偵聽,並根據請求的 HTTP 主機(virtualdir)進行代理連接回到各自埠上的 tomcat 實例。
tar.gz 中的 TeamCity 包含 Tomcat。.jar 版本中的 YouTrack 包括 Jetty。我們有一個關於如何設置 TeamCity 和 YouTrack 以在同一伺服器上執行的簡短指南。