Nginx根据目录自动生成二级域名

时间:2024-02-16 17:37:45

前言:
    每次创建二级域名如果都修改一次配置文件的话,项目多了会带来很多不必要的工作量,如果能够在一个web目录下创建一个文件夹并且自动生成文件目录的话,那真是极好的,本文就基于Nginx贴出这个配置文件.

实验环境(基于阿里云):

    阿里云CentOS-6.5

    domain.com 域名管理权限

正文:

    首先需要在域名管理处做一个泛解析 把*.domain.com 指向你自己的服务器的ip,然后在Nginx配置文件里面增加配置,这个配置还可以制作三级域名,例如*.demo.domain.com.

例子:
    web主目录下创建一个test的文件夹自动生成一个叫test.domain.com 的网址.

 

web目录 /web/data/www
主域名 domain.com

 

配置代码:

# domain.com
server {
    listen      80;
    server_name  ~^(?<subdomain>.+)\.domain\.com$;

    charset utf-8;
    access_log  logs/domain.com.access.log  main;
    error_log   logs/domain.com.error.log;
    root   /web/data/www/$subdomain;
    index  index.php index.html index.htm;
    fastcgi_intercept_errors on;
    error_page  404      = /404.html;
    location / {
        try_files $uri $uri/ =404;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

        if (!-e $request_filename) {
        rewrite  ^(.*)$  /index.php?s=$1/  last;
        break;
        }

   }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }

    location ~ .*\.php(\/.*)*$ {
        fastcgi_pass  unix:/tmp/php-cgi.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
    }
}