Ninvfeng Blog

记录web开发中的所见所得

域名与nginx泛解析实现不同二级域名访问对应的目录

先说说要实现的效果:比如访问a.ninvfeng.com,对应的网站根目录为/data/www/a;访问b.ninvfeng.com则对应的网站跟目录为/data/www/b.....传统的做法可以解析N个域名然后配置N个虚拟主机,其实使用泛解析可以快捷方便一劳永逸地实现这个需求。

操作步骤

1.域名泛解析,将*.ninvfeng.com解析到服务器,这样ninvfeng.com下的所有子域名都会指向服务器

01.png

2.nginx泛解析,在nginx配置文件中添加如下内容,其中~^(?<subdomain>.+)是获取二级域名作为变量,$subdomain是使用二级域名作为网站根目录,这样就能使访问域名和网站根目录对应起来了

    server {
        listen 80;
        server_name ~^(?<subdomain>.+).ninvfeng.com$;
        root /data/www/$subdomain/;

        location ~ /.well-known {
            allow all;
        }

        location / {
            index index.html index.php;
        }

        location ~ \.php$ {
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }

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

重启nginx,验证是否生效

02.png
03.png

大功告成

文章评论已关闭!