nginx.conf server_name

在一个server块中配置多个站点
server{
   listen 80;
   server_name ~^(www\.)?(.+)$;
   index index.php index.html;
   root /data/wwwsite/$2;
}

站点的主目录应该类似于这样的结构:

/data/wwwsite/ssdr.info
/data/wwwsite/linuxtone.org
/data/wwwsite/baidu.com
/data/wwwsite/google.com
重写URL
server{
    listen 80;
    server_name ~^(.+)?\.howtocn\.org$;
    index index.html;
if ($host = ssdr.info){
    rewrite ^ http://www.ssdr.info permanent;
}
    root /data/wwwsite/ssdr.info/$1/;
}

站点的目录结构应该如下:

/data/wwwsite/ssdr.info/www/
/data/wwwsite/ssdr.info/nginx/
多个正则表达式

如果你在server_name中用了正则,而下面的location字段又使用了正则匹配,这样将无法使用2这样的引用,解决方法是通过set指令将其赋值给一个命名的变量:

server
{
    listen 80;
    server_name ~^(.+)?\.howtocn\.org$;
    set $www_root $1;
    root /data/wwwsite/ssdr.info/$www_root/;
    location ~ .*\.php?$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME         
        /data/wwwsite/ssdr.info/$fastcgi_script_name;
        include fastcgi_params;
    }
}

你可能感兴趣的:(nginx.conf server_name)