我注意到我安装的nginx有三个文件夹,称为
etc/nginx/sites-available etc/nginx/sites-enabled etc/nginx/conf.d
如果我只是想直接在etc/nginx/nginx.conf文件中工作并删除包含nginx.conf中这些项的include行,我真的需要这些目录吗?如果我删除这些目录,这些目录是否用于其他会使事情变得混乱的东西?
etc/nginx/nginx.conf
nginx.conf
include
wkyowqbh1#
不需要,如果你在nginx.conf中正确定义了你的服务器块,它们就不需要了,但是强烈建议你这样做。正如你所注意到的,它们只是因为nginx. conf中的include /etc/nginx/sites-enabled/*;而被使用的。对于好奇心,有什么理由你不想使用它们吗?它们很有用;更容易添加新站点,禁用站点等。而不是有一个大的配置文件。这是一种nginx文件夹布局的最佳实践。
include /etc/nginx/sites-enabled/*;
isr3a4wc2#
重要信息:
您应该只编辑sites-available目录下的文件。
sites-available
切勿编辑sites-enabled目录中的文件,否则,如果编辑器内存不足,或者由于任何原因收到SIGHUP或SIGTERM,您可能会遇到问题。
sites-enabled
例如:如果您正在使用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目录造成任何伤害。
nano
sites-enabled/default
default.save
sites-available/default.save
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也在说明。
/etc/nginx/conf.d/
.conf
/etc/nginx/nginx.conf
http
site-available
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的文件的链接。
4条答案
按热度按时间wkyowqbh1#
不需要,如果你在nginx.conf中正确定义了你的服务器块,它们就不需要了,但是强烈建议你这样做。正如你所注意到的,它们只是因为nginx. conf中的
include /etc/nginx/sites-enabled/*;
而被使用的。对于好奇心,有什么理由你不想使用它们吗?它们很有用;更容易添加新站点,禁用站点等。而不是有一个大的配置文件。这是一种nginx文件夹布局的最佳实践。
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
目录造成任何伤害。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也在说明。
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的文件的链接。