“配置文件/etc/nginx/nginx.conf测试失败”:我怎么知道为什么会这样?


91

我是nginx新手,尝试在ubuntu 12.04上的nginx 1.1.19上学习教程。我有这个Nginx配置文件。

当我运行此命令时,测试失败:

$ sudo service nginx restart
Restarting nginx: nginx: [crit] pread() "/etc/nginx/sites-enabled/csv" failed (21: Is a directory)
nginx: configuration file /etc/nginx/nginx.conf test failed

我怎么知道为什么nginx.conf测试失败?


1
您的“ / etc / ngix / sites-enabled”中是否还有“ default”?
RickyA 2014年

@RickyA您的意思是“默认”文件吗?是的,我仍然在该目录中找到该文件。我移动了该文件并运行nginx -s reload,仍然从服务器上看到了相同的行为
bernie2436 2014年

错误提到文件csv,请在启用了网站的位置检查该文件
Mohammad AbuShady 2014年

1
Ad sudo service nginx restart)Nginx也有一个CLI工具:nginx -s reload在配置更改的情况下重新加载配置。那要快得多。
kaiser

Answers:


168

sudo nginx -t 应该测试所有文件并返回错误和警告位置


1
它仅测试一个文件,即:/etc/nginx/nginx.conf,但如何测试启用站点/默认站点?
aitchkhan

4
它认为只要它们包含在默认文件中(我认为它们是?),它就会测试所有内容,如果您未使用默认配置文件路径,则尝试使用-c标志,因此nginx -c /etc/nginx/sites-enabled/default -t
Mohammad AbuShady

可以确认@MohammadAbuShady说了什么。尽管手册页中-t有些含糊地说“不要运行”,但只需测试配置文件即可。Nginx检查配置中的语法是否正确,然后尝试打开配置中引用的文件。这些文件不仅会检查是否存在,还会进行解析。如预期的那样,如果发现错误,则退出代码为1,否则为0。
京特EBERL

5

这个特殊的命令对我有用。 sudo apt-get remove --purge nginx nginx-full nginx-common

sudo apt-get install nginx

信贷这个答案上stackexchnage


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.