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這個錯誤

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM