我正在使用 Debian,最新的 dotdeb nginx-lite。我已经读过,server
如果域没有特定的服务器部分,nginx 找到的第一部分将用作备用/默认部分。
我从我的安装中删除了sites-available
,sites-enabled
因为我对所有与 http 相关的东西都使用了专用的挂载/www
。
我/etc/nginx/nginx.conf
的这些行包括其他配置:
include /www/conf.d/nginx/default.conf;
include /etc/nginx/conf.d/*.conf;
include /www/conf.d/nginx/*;
default.conf 看起来像:
server {
server_name 0.0.0.0;
listen 0.0.0.0:80;
rewrite ^ http://mymaintarget.com permanent;
}
这对我不起作用。我仍然收到此警告:
Restarting nginx: nginxnginx: [warn] conflicting
server name "0.0.0.0" on 0.0.0.0:80, ignored
我很确定没有其他服务器部分,而 default.conf 是第一个包含/使用的部分。
任何人都知道出了什么问题或配置默认服务器的正确方法是什么?
更新完整的配置文件:
nginx.conf:
user www-data;
worker_processes 8;
pid /run/nginx.pid;
events {
worker_connections 768;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 10;
types_hash_max_size 2048;
server_tokens off;
include /etc/nginx/mime.types;
default_type application/octet-stream;
error_log /var/log/nginx/error.log;
gzip on;
gzip_disable "msie6";
gzip_vary on;
# Default VirtualHost
include /www/conf.d/nginx/default.conf;
# conf.d is empty anyways
#include /etc/nginx/conf.d/*.conf;
# VirtualHosts
include /www/conf.d/nginx/*;
}
默认配置:
server {
listen 80 default_server;
rewrite ^ http://blog.flowl.info permanent;
}
要设置默认服务器:
default_server 参数将包括任何其他域、ip 等
更多信息
“default.conf”被包含,然后再次被包含在
/www/conf.d/nginx/*
我删除了第一个包含,并将“default.conf”重命名为“_default.conf”,因此该文件是第一个包含在通配符包含中的文件。