WD1X.COM - 问答一下,轻松解决,电脑应用解决专家
主板显卡CPU内存显示器
硬盘维修显卡维修显示器维修
注册表系统命令DOS命令Win8
存储光存储鼠标键盘
内存维修打印机维修
WinXPWin7Win11Linux
硬件综合机箱电源散热器手机数码
主板维修CPU维修键盘鼠标维修
Word教程Excel教程PowerPointWPS
网络工具系统工具图像工具
数据库javascript服务器
PHP教程CSS教程XML教程

配置Nginx子域名泛解析绑定至单独目录

更新时间:2014-12-01 15:50 作者:佚名点击:

简单记录:

需求描述

Web 服务器为 Nginx,希望配置泛子域名解析。 其实稍加修改,配置泛域名解析也不是难事。

解决及分析

在 Nginx 的配置文件中做如下配置(示意):

 


    server {
         server_name
             domain.com
             www.domain.com
             *.domain.com
         ;
 
        set $subdomain '';
         if ($host ~* (\b(?!www\b).+)\.domain.com) {
             set $subdomain -$1;
         }
 
        root    /home/user/www$subdomain/;
     }
 

解释:

首先,在定义 server_name 时使用通配符 * ,使 Nginx 接受任意子域名的访问。

然后,对 $host 进行分析,找到子域名的名称。 这个正则表达式是在网上抄的,目的是为了在匹配子域名的同时, 不匹配 www 开头的访问和不带 www 的访问。 前面的 set 是因为 Nginx 的 If 没有 Else,所以默认先将 $subdomain 置空。
 
最后,在定义 root 的时候,使用 $subdomain 变量。

顶一下
(1)
100%
踩一下
(0)
0%
------分隔线----------------------------
你可能感兴趣的内容