nginx 我真的需要sites-available和sites-enabled文件夹吗?

ozxc1zmp  于 2023-04-20  发布在  Nginx
关注(0)|答案(4)|浏览(216)

我注意到我安装的nginx有三个文件夹,称为

etc/nginx/sites-available
etc/nginx/sites-enabled
etc/nginx/conf.d

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

wkyowqbh

wkyowqbh1#

不需要,如果你在nginx.conf中正确定义了你的服务器块,它们就不需要了,但是强烈建议你这样做。正如你所注意到的,它们只是因为nginx. conf中的include /etc/nginx/sites-enabled/*;而被使用的。
对于好奇心,有什么理由你不想使用它们吗?它们很有用;更容易添加新站点,禁用站点等。而不是有一个大的配置文件。这是一种nginx文件夹布局的最佳实践。

isr3a4wc

isr3a4wc2#

重要信息:

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

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

例如:如果您正在使用nano编辑文件sites-enabled/default,并且它耗尽内存,或者由于任何原因,它收到SIGHUP或SIGTERM,则nano将在sites-enabled目录中创建一个名为default.save的紧急文件。因此,在sites-enabled目录中会有一个额外的文件。这将阻止Apache或NGINX启动。如果您的站点正在工作,您将很难在日志中找到与default.save文件相关的内容,然后将其删除。
在上面的例子中,如果你正在编辑sites-available目录中的文件,不会发生任何错误。文件sites-available/default.save会被创建,但它不会对sites-available目录造成任何伤害。

a64a0gku

a64a0gku3#

正如(免费提供)NGINX Cookbook在“1.5密钥文件、目录和命令”一节中所述:
/etc/nginx/conf.d/目录包含默认的HTTP服务器配置文件。此目录中以.conf结尾的文件包含在/etc/nginx/nginx.conf文件中的顶级http块中。最佳做法是利用include语句并以这种方式组织配置,以保持配置文件的简洁。
在某些软件包存储库中,此文件夹名为sites-enabled,配置文件从名为site-available的文件夹链接;此约定已弃用
话虽如此,我在NGINX docs中找不到任何弃用通知。正如作者也仔细指出的那样,这种约定可能只是“* 在某些包存储库 * 中”的东西,而不是通用的东西。(例如,参见@Robin下面的评论。)This NGINX sub-reddit post也在说明。

ncgqoxb0

ncgqoxb04#

这不是必须的,但如果你在你的机器上托管多个网站,这是一个最佳实践。
通过在nginx.conf上保留http上下文和公共指令(如ssl_dhparam,ssl_ciphers,甚至gzip设置等),使其适用于所有站点,这将更容易管理。
在etc/nginx/sites-available/中保存特定于站点的服务器上下文(例如ssl-certificate、location指令等),并将配置文件命名为your-domain. conf。etc/nginx/sites-enabled中的文件可以只是指向etc/nginx/sites-available的文件的链接。

相关问题