nginx泛域名解析访问站点各个版本

一个站点往往会创建多个版本,但一个新版本创建后还未同步外网这时候可能会需要在上个版本中修复紧急的bug.可以通过泛域名解析来访问各个版本以便开发人员调试。

比如 www.xiaocai.loc访问默认dev1版本,dev1.www.xiaocai.loc 和 dev2.www.xiaocai.loc分别访问dev1 和 dev2版本.

创建各个版本对应的目录如:

/www.xiaocai.name/dev1

/www.xiaocai.name/dev2

泛域名解

server_name  www.xiaocai.loc *.www.xiaocai.loc;

设置默认版本

set $version dev1;

匹配域名中的版本号

if ( $host ~* (.*)\.www\.17611\.loc  ){

set $version $1;

}

应用root

root  /mnt/siteroot/www.xiaocai.name/$version;

完整的参考

server

{

listen 80;

server_name  www.xiaocai.loc *.www.xiaocai.loc;

index  index.php index.html index.htm;

 

set $version dev1;

if ( $host ~* (.*)\.www\.17611\.loc  ){

set $version $1;

}

 

root  /mnt/siteroot/www.xiaocai.name/$version;

 

if (!-e $request_filename) {

rewrite ^/(.*)  /index.php?r=$1 last;

}

location ~ .*\.(php|php5)?$

{

try_files $uri =404;

fastcgi_pass  unix:/tmp/php-cgi.sock;

fastcgi_index index.php;

include fcgi.conf;

}

access_log  /home/wwwlogs/access.log  access;

}