Nginx 运行但是不提供站点服务
我们最近在一台新机器上安装了 nginx 版本 1.17。 在 sites-available
中创建的配置被符号链接到 sites-enabled
,但 nginx 没有为任何域名提供服务。
关键在这里,nginx 使用不同的目录 conf.d
来存储一个各种各样的 default
配置。 此配置匹配所有传入请求并接管所有请求和响应的处理。
nginx 配置如何工作
Nginx 将位于 sites-available
目录中的配置保持为私有,并且不会将它们路由到 Internet。 将配置添加到 sites-enabled
的目录将使其公开可用。
Nginx 允许我们支持多个 location 的配置文件。 配置域的第二种方法:conf.d
目录。
这里的区别:位于 conf.d
目录中的任何文件都将被 nginx 提取并路由到 Internet。 如果想使域名不能访问到,则必须从 conf.d 文件夹中删除该域名的配置。
检查 nginx 配置
检查 /etc/nginx 中是否有包含 default 配置的 conf.d 目录。
如果存在 conf.d 目录,则应检查 nginx 的配置是否包含 sites-enabled
的文件夹:
$ nano /etc/nginx/nginx.conf
我们对 nginx 的虚拟主机配置感兴趣。 Nginx 可能会在 conf.d
和 sites-enabled
目录中搜索配置。 根据顺序,nginx 可能会首先找到“gotta catch ’em all”配置。
我们的 nginx.conf 文件的内容可能如下所示:
user www-data;
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 768;
}
http {
sendfile on;
tcp_nopush on;
##
# 虚拟主机配置
##
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*; # <-- 如果希望“sites-enabled”工作,请确保此行有效
}
如果我们将域的配置文件放置在 sites-available
和 sites-enabled
目录中,来自 conf.d
的默认配置可能会覆盖它们。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。