Nginx - 我真的需要网站可用和网站启用的文件夹吗?

Tri*_*e C 11 nginx

我已经搜索了Stack Overflow的直接答案,但还没有找到它.我注意到我的nginx安装有三个文件夹

etc/nginx/sites-available
etc/nginx/sites-enabled
etc/nginx/conf.d
Run Code Online (Sandbox Code Playgroud)

如果我只是想直接在etc/nginx/nginx.conf文件中工作并删除include包含这些项目的行,我真的需要这些nginx.conf吗?如果删除它们,这些目录是否用于其他任何会弄乱的东西?

Vin*_*ini 11

重要信息:

您应该sites-available目录中编辑文件。

永远不要编辑目录中的文件sites-enabled,否则如果您的编辑器内存不足,或者由于任何原因,它收到 SIGHUP 或 SIGTERM,您可能会遇到问题。

例如:如果您正在使用nano编辑文件sites-enabled/default并且它内存不足,或者由于任何原因,它收到一个 SIGHUP 或 SIGTERM,那么nanodefault.savesites-enabled目录中创建一个名为 的紧急文件。因此,sites-enabled目录中会有一个额外的文件。这将阻止 Apache 或 NGINX 启动。如果您的网站正在运行,它将不再运行。在您在日志中发现与该default.save文件相关的内容并随后将其删除之前,您将很难过。

在上面的示例中,如果您正在编辑sites-available目录中的文件,则不会发生任何不好的事情。该文件sites-available/default.save将被创建,但它不会在sites-available目录内造成任何损害。


Isk*_*kar 10

不,如果您在nginx.conf中正确定义服务器块,则不需要它们,但强烈建议.正如您所注意到的,它们仅include /etc/nginx/sites-enabled/*;在nginx.conf中使用.

为了好奇,你有没有理由不想使用它们?它们非常有用; 更容易添加新网站,禁用网站等.而不是有一个大的配置文件.这是nginx文件夹布局的一种最佳实践.

  • 我猜是因为我喜欢保持简单。我没有托管大量网站。只有一对。 (2认同)

Aru*_*run 8

我在 NGINX官方网站的The Complete NGINX Cookbook中看到以下评论!

/etc/nginx/conf.d/ 目录包含默认的 HTTP 服务器配置文件。此目录中以 .conf 结尾的文件包含在 /etc/nginx/nginx.conf 文件中的顶级 http 块中。利用包含状态是最佳实践?以这种方式修改和组织您的配置,以保持您的配置文件简洁。在某些包存储库中,此文件夹名为sites-enabled,配置文件从名为site-available 的文件夹链接;该约定已被弃用。

  • 换句话说,根据此,在“/etc/nginx./conf.d”文件夹下添加“your-site.conf”,而不是使用已弃用的“sites-enabled/site-available”模式。 (5认同)
  • 我一直在寻找这个确切的答案 - 谢谢。 (2认同)