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字段又使用了正则匹配,这样将无法使用1,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;
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容