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这个错误