Nginx多域名的泛解析 配置

Nginx多域名的泛解析
最近将原来的Apache服务器升级成为了Nginx.由于不同的子域名需要访问不同的目录,一开始配置了多个虚拟主机,想想还是偷下懒,用Nginx的泛解析吧。

顺便也可以学习学习下

首先项目目录是这样的

/www/a.domain.com
/www/b.domain.com
/www/c.domain.com
/www/domain.com
其中每个项目里面的入口文件又不一样,有index的还有login的,直接贴配置吧

server {
listen 80;
server_name ~^(.+)?\.domain\.com$;
access_log logs/host.access.log;
set $sub $1;  #设置sub变量
set $root /www/$1.domain.com;   #设置web目录
set $index index.html;       #设置默认的index页面

if (!-d $root){    #if这里和括号之间是有个空格的
set $root /www/domain.com;
}

root $root;

location / {
if ($sub = a){
set $index login.html;
}
if ($sub = b){
set $index login.html;
}
if ($sub = c){
set $index proxy.php;
}
index $index;
}

location ~ .*\.(php|php5)$ {
fastcgi_pass unix:/dev/shm/php-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}

#测试服务器不缓存图片和js.css文件
# location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
# expires 10m;
# }

# location ~ .*\.(js|css)?$ {
# expires 10m;
# }

location ~ /\.ht {
deny all;
}

}

因为nginx配置里的if语句不支持 &&、||等语法,所以只能写多条If语句了

另外要注意的是 if (condition){}这里”if”和括号”(“之间是有个空格的,要不然会报

unknown directive “if(!-e” in /usr/local/nginx/conf/nginx.conf:124这个错误

相关推荐

暂无评论

微信扫一扫,分享到朋友圈

Nginx多域名的泛解析 配置