(直接通过子目录实现。(在公司的项目中完全可以这样实现))
1. 部署不同分支到web服务器下的不同目录
2. 不同分支直接访问同一web服务器下的分支对应目录就可
```
server_root/
branch1/webroot
branch2/webroot
branch3/webroot
```
假如不使用子目录,可以通过配置不同子域名服务器实现(子域名即为分支名)
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;
}
```