我有一个通配符DNS条目,因此* .mydomain.tld被定向到我的服务器。 我正在使用nginx 我有两个标题为:
的配置文件我的conf文件如下所示:
默认:
server {
listen 80;
listen [::]:80 default_server ipv6only=on;
root /var/www/website;
index index.html index.htm;
server_name _;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ /index.html;
}
}
myconf.conf:
server {
listen 80;
#listen [::]:80 default_server ipv6only=on;
root /home/me/www/website;
index index.php index.html index.htm;
# Make site accessible from http://localhost/
# orig # server_name localhost;
server_name me.mydomain.tld;
access_log /home/me/logs/me.mydomain.tld.access.log;
error_log /home/me/logs/me.mydomain.tld.error.log warn;
location / {
try_files $uri $uri/ $uri.php?$args;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
# With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
}
当我按如下方式浏览域时,这些是加载的conf文件。
什么是错误,默认不应该是它应该是什么? anything.mydomain.tld应该在默认的conf文件中加载根目录。
答案 0 :(得分:4)
在默认配置文件中,您必须在default_server
行中指定listen
;另外,您需要删除server_name
行:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /var/www/website;
index index.html index.htm;
#server_name _;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ /index.html;
}
}
您用于server_name
的下划线实际上并不是外卡(如果这是您的意图)。来自nginx Server Names文档:
这个名称没有什么特别之处,它只是无数域名之一,永远不会与任何真实姓名相交。也可以使用其他无效名称,如“ - ”和“!@#”。