Nginx是否支持使用单个Jenkins实例转发多个端口?

Nginx是否支持使用单个Jenkins实例转发多个端口?,nginx,jenkins,forward,Nginx,Jenkins,Forward,我们在单个CI服务器中有3个用于DEV/STG/PRD的Jenkins实例。 它分别使用30013002和3003个TCP端口。例如,如果我想访问STG Jenkins,我可以使用URL“192.168.0.3:3002”访问服务器 但是现在我们必须将Jenkins实例移动到远程用户的Nginx服务器后面,用户只能通过Nginx和端口443访问Jenkins。只有防火墙的TCP 443端口可供出站流量使用。由于这个原因(TCP 443的单个Nginx实例),区分DEV/STG/PRD的唯一方法是

我们在单个CI服务器中有3个用于DEV/STG/PRD的Jenkins实例。 它分别使用30013002和3003个TCP端口。例如,如果我想访问STG Jenkins,我可以使用URL“192.168.0.3:3002”访问服务器

但是现在我们必须将Jenkins实例移动到远程用户的Nginx服务器后面,用户只能通过Nginx和端口443访问Jenkins。只有防火墙的TCP 443端口可供出站流量使用。由于这个原因(TCP 443的单个Nginx实例),区分DEV/STG/PRD的唯一方法是使用不同的URI

例如:

  • “192.168.0.3:3001”->“192.168.0.3:443/dev”
  • “192.168.0.3:3002”->“192.168.0.3:443/stg”
  • 等等
下面是我期望的端口转发的NginX配置示例

server ( listen 443; server_name localhost; location /dev ( proxy_pass http://localhost:3001; ) location /stg ( proxy_pass http://localhost:3002; ) location /prd ( proxy_pass http://localhost:3003; ) ) 服务器( 听443; 服务器名称localhost; 位置/开发( 代理通行证http://localhost:3001; ) 位置/stg( 代理通行证http://localhost:3002; ) 地点/珠三角( 代理通行证http://localhost:3003; ) )
可能吗?Nginx是否支持单实例多端口转发?

是的,Nginx支持多个上游,您需要做的唯一更改是自定义Jira服务器XML配置路径:

请参阅下面的完整配置:


....

非常感谢你,米哈伊洛夫。由于我是NginX的新手,有点奇怪的是它与JIRA有关,但我会尝试一下。谢谢,米哈伊洛夫,你说得对。我终于解决了这个问题。因为你,我可以度过快乐的周末。真的非常感谢你。我爱你!!!
    <Engine name="Catalina" defaultHost="localhost">
      <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
        <Context path="/jira" docBase="${catalina.home}/atlassian-jira" reloadable="false" useHttpOnly="true">
          <Resource name="UserTransaction" auth="Container" type="javax.transaction.UserTransaction"
            factory="org.objectweb.jotm.UserTransactionFactory" jotm.timeout="60"/>
          <Manager pathname=""/>
        </Context>
      </Host>
    ....
    </Engine>