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

ber*_*436 76 nginx

我是一个nginx noob 在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
Run Code Online (Sandbox Code Playgroud)

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

Moh*_*ady 147

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

  • 它认为它会测试所有,只要它们包含在默认文件中(我假设它们是?),如果你没有使用默认配置文件路径然后尝试使用`-c`标志,那么`nginx -c/etc/nginx/sites-enabled/default -t` (4认同)
  • 实际上它并不指向行号 (2认同)
  • 它只测试一个文件,即:/etc/nginx/nginx.conf 但我如何测试站点启用/默认? (2认同)

Eri*_*ric 12

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

sudo apt-get install nginx

信贷这个答案上stackexchnage


Muj*_*que 5

第一个解决方案是使用基本的测试 nginxconf

sudo nginx -t
Run Code Online (Sandbox Code Playgroud)

其次,如果您自己更改了文件,将 json 从一个文件复制/粘贴到另一个文件,则很可能存在编码问题。

例如:"不等于

``
Run Code Online (Sandbox Code Playgroud)

尝试自己写配置。检查逗号、冒号和大括号。不要忘记重新加载 nginx。

sudo systemctl reload nginx
Run Code Online (Sandbox Code Playgroud)