最近將原來的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這個錯誤