nginx 泛域名解析实现二级域名多域名

运维技术   nginx泛域名  

说明

网站的目录结构为
/data/www/imdst.com
                 ├── aa
                 ├── bb
                 └── cc
/data/www/为nginx的安装目录下默认的存放源代码的路径。

aa为a站源代码路径  
bb为b站源代码路径  
cc为c站源代码路径

把相应程序放入上面的路径通过
http://aa.imdst.com 访问的就是a站  
http://bb.imdst.com 访问的就是b站  
其它二级域名类推。

泛域名解析 imdst.com (泛域名解析是指将*.域名解析到同一IP)

*  A   192.168.1.10
@  A   192.168.1.10

配置

  • vim /usr/local/nginx/vhosts/imdst.com.conf
server  
{
 listen       80;
 server_name  ~^(?<subdomain>.+).imdst.com$;
 root   /data/www/imdst.com/$subdomain; 
 access_log /data/logs/${subdomain}.imdst.com.acc.log;
 error_log /data/logs/${subdomain}.imdst.com.err.log;
 index index.html index.htm index.php;

 location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param  SCRIPT_FILENAME                     $document_root$fastcgi_script_name;
        fastcgi_param  QUERY_STRING     $query_string;
        include fastcgi_params;
        }
 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
 {
     expires      30d;
 }
     location ~ .*\.(js|css)?$
 {
     expires      1h;
 }    
     error_page  404 = /404.html;
}

总结

  • 减少人工vhost配置和域名解析时间
  • 新增子域名只要自义好相应目录即可