繁体   English   中英

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

[英]Does Nginx support multiple ports forward with a single Jenkins instance?

在单个CI服务器中,我们有3个Jenkins实例用于DEV / STG / PRD。 每个端口使用3001、3002和3003 TCP端口。 例如,如果要访问STG Jenkins,则可以使用URL“ 192.168.0.3:3002”访问服务器。

但是,现在我们必须将Jenkins实例移到Nginx Server后面供远程用户使用,这些用户只能通过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;
)
)

可能吗? Nginx是否支持单个实例转发多个端口?

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

请参阅下面的完整配置: https : //gist.github.com/mikhailov/8562320

    <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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM