基于Nginx配置无限个二级域名
最近,遇到一个问题,希望通过一台主机,实现无限个域名访问,结合对nginx的了解,通过nginx解析带*的万能域名,实现不同的访问。以下我个人对这块的记录,希望对感兴趣的小伙伴有帮助!!!
一 、配置域名与解析
在域名解析时,配置解析的域名为不控制域名,可以参考如下配置(阿里云配置)
其中:主机记录为:*,表示可以匹配任何的二级域名
如:www.qyjsk.com blog.qyjsk.com ...
二、配置Nginx解析域名
打开Nginx目录,找到conf/nginx.conf
修改http 下面的server 配置项,配置如下
server { listen 80; server_name *.qyjsk.com;#绑定域名,* 代表任何二级域名 set $subdomain 'www'; #设置默认二级子目录为www #判断当二级域名不是www时,重新设置二级子目录名称,如blog.qyjsk.com ,则$subdomain的值为blog if ($host ~* (\b(?!www\b)\w+)\.\w+\.\w+) { set $subdomain $1; } #配置根路径访问 location / { #当主机地址为www.qyjsk.com时,打开百度 if ( $host = www.qyjsk.com ){ rewrite /(.*) http://www.baidu.com permanent; } root app/$subdomain; #对应nginx下app目录下的二级文件夹 index index.html index.php; #默认访问index/index.html/index.php文件 } }
在nginx根目录下新建一个文件夹app(与nginx的conf目录同级),在app目录下新建一个文件夹,如下图
在blog文件夹下,添加一个index.html文件,内容如下
"utf-8">欢迎访问博客页面
三、测试
访问http://www.qyjsk.com网站时,地址已经由http://www.qyjsk.com改变成https://www.baidu.com
访问http://blog.qyjsk.com网站时,地址没有被重定向,默认访问了app/blog文件夹下的index.html文件
以上就是测试结果,也达到了预期目标,希望本文对大家有所帮助!!!