首先我想指出的是,在在这里提问之前,我已经在 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.org
和w*.example.org
是无效的。但是,可以使用正则表达式指定这些名称,例如~^www\..+\.example\.org$
和~^w.*\.example\.org$
您需要对 server_name 使用正则表达式匹配,例如:
server_name ~^webmail\..*\..*$;