Skip to content

Instantly share code, notes, and snippets.

@sursir
Last active December 7, 2017 02:34
Show Gist options
  • Select an option

  • Save sursir/daaf7bf44d51ebbebe5bfb7a9f65a20c to your computer and use it in GitHub Desktop.

Select an option

Save sursir/daaf7bf44d51ebbebe5bfb7a9f65a20c to your computer and use it in GitHub Desktop.
nginx

怎么多分支多环境测试。

我的方式:

方式1

(直接通过子目录实现。(在公司的项目中完全可以这样实现))

1. 部署不同分支到web服务器下的不同目录
2. 不同分支直接访问同一web服务器下的分支对应目录就可

```
server_root/
    branch1/webroot
    branch2/webroot
    branch3/webroot
```

方式2

假如不使用子目录,可以通过配置不同子域名服务器实现(子域名即为分支名)

1. 在 `sites-enabled` 下添加文件配置
2. 然后重启服务器

网上的方式:

下面是将域名硬编码在代码的情况下才这样处理,否则可以通过配置子域名server来直接实现。
尽管如此,下面的配置还是繁琐了,
1. 可以监听同一端口,再代理到子域名服务器,通过访问子域名就可以访问,不必占用过多端口
2. 甚至可以不用配置多服务器,完全可以用web目录下子目录来实现,
3. 甚至不用配置反向代理,直接跳转到子目录就行

```
if ( $http_user_agent ~ "dashen" ) {
    set $flag "01";
}
```

```
server
{
    listen 192.168.1.251:80;
    server_name *.example.com;
    index index.html index.htm index.php;
    charset utf-8;
  location / {
    set $flag "00";
    if ( $http_user_agent ~ "dashen" ) {
            set $flag "01";
        }
    if ( $http_user_agent ~ "mianwo" ) {
            set $flag "02";
        }
    if ( $http_user_agent ~ "bingkuai" ) {
            set $flag "03";
        }
    if ( $http_user_agent ~ "hadoop" ) {
            set $flag "04";
        }
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        if ( $flag = "00" ){
            add_header Z-Server mobile;
            proxy_pass http://webserver_mobile;
        }
        if ( $flag = "01" ){
            add_header Z-Server dashen;
            proxy_pass http://webserver_dashen;
        }
        if ( $flag = "02" ){
            add_header Z-Server mianwo;
            proxy_pass http://webserver_mianwo;
        }
        if ( $flag = "03" ){
            add_header Z-Server bingkuai;
            proxy_pass http://webserver_bingkuai;
        }
        if ( $flag = "04" ){
            add_header Z-Server hadoop;
            proxy_pass http://webserver_hadoop;
        }
  }
}
```

```
upstream webserver_mobile{
    server 127.0.0.1:8900 max_fails=2 weight=2 fail_timeout=10s;
}
upstream webserver_dashen{
    server 127.0.0.1:8901 max_fails=2 weight=2 fail_timeout=10s;
}
upstream webserver_mianwo{
    server 127.0.0.1:8902 max_fails=2 weight=2 fail_timeout=10s;
}
upstream webserver_bingkuai{
    server 127.0.0.1:8903 max_fails=2 weight=2 fail_timeout=10s;
}
upstream webserver_hadoop{
    server 127.0.0.1:8904 max_fails=2 weight=2 fail_timeout=10s;
}
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment