我正在使用Debian,最近的dotdeb nginx-lite。 我读过nginxfind的第一个server部分将被用作fallback / default部分,如果域没有特定的服务器部分。
我从我的安装删除了sites-available和sites-enabled ,因为我使用专用的挂载/www相关的HTTP。
我的/etc/nginx/nginx.conf有这些行,包括其他的confs:
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是第一个包括/使用。
任何人都知道什么是错的,或者如何正确configuration默认服务器?
更新完整的configuration文件:
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/*; }
default.conf:
server { listen 80 default_server; rewrite ^ http://blog.flowl.info permanent; }
设置默认服务器:
server { listen 80 default_server; rewrite ^ http://mymaintarget.com$request_uri? permanent; }
default_server参数将包含任何其他域,ip等
更多信息nginx
# 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/*;
包含“default.conf”,然后再次包含在/www/conf.d/nginx/*
我删除了第一个包含,并将“default.conf”重命名为“_default.conf”,这样文件是第一个被包含在通配符中的。