Nginx | 所有子域名 webmmail.*.* 到一个文档根目录

Nginx | 所有子域名 webmmail.*.* 到一个文档根目录

首先我想指出的是,在在这里提问之前,我已经在 Nginx wiki、Stackoverflow 和 Servervault 上查看过。

我的 nginx 配置有问题。这是我的配置

server {
    listen 8080;
    root /opt/apanel/apps/webmail;
    index index.php index.html index.htm;
    server_name webmail.*.*;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~* \.php$ {
        fastcgi_index   index.php;
        fastcgi_pass    unix:/var/run/php5-fpm.sock;
        include         fastcgi_params;
    }
}

我希望所有 Webmail 子域名都指向一个文档根目录。

我的错误日志中的一行:

^[[1;5A2014/07/20 19:44:41 [emerg] 9276#0: 无效的服务器名称或通配符“admin.“ 0.0.0.0:8080

有人知道如何实现这一点吗?

答案1

来自 nginx 的文档

通配符名称只能在名称的开头或结尾处包含星号,并且只能在点边框处包含星号。名称www.*.example.orgw*.example.org是无效的。但是,可以使用正则表达式指定这些名称,例如~^www\..+\.example\.org$~^w.*\.example\.org$

您需要对 server_name 使用正则表达式匹配,例如:

server_name ~^webmail\..*\..*$;

相关内容