“Falha no teste do arquivo de configuração /etc/nginx/nginx.conf”: Como posso saber por que isso aconteceu?

93

Eu sou um novato nginx experimentando este tutorial no nginx 1.1.19 no ubuntu 12.04. Eu tenho este arquivo de configuração nginx.

Quando executo este comando, o teste falha:

$ 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

Como posso saber por que o teste nginx.conf falhou?

bernie2436
fonte
1
Você ainda tem "default" em seu "/ etc / ngix / sites-enabled"?
RickyA de
@RickyA você quer dizer o arquivo "padrão"? Sim, ainda tenho esse arquivo localizado nesse diretório. Mudei esse arquivo e executei nginx -s reload e ainda vejo o mesmo comportamento do servidor
bernie2436
o erro menciona o arquivo csv, verifique esse arquivo em sites habilitados
Mohammad AbuShady
1
Ad sudo service nginx restart) O Nginx também tem uma ferramenta CLI: nginx -s reloadpara recarregar a configuração caso ela seja alterada. Isso é muito mais rápido.
Kaiser de

Respostas:

171

sudo nginx -t deve testar todos os arquivos e retornar locais de erros e avisos

Mohammad AbuShady
fonte
2
ele está testando apenas um arquivo, ou seja: /etc/nginx/nginx.conf, mas como posso testar sites habilitados / padrão?
aitchkhan
4
ele acha que testaria todos, contanto que eles estejam incluídos no arquivo padrão (o que eu presumo que estejam?), se você não estiver usando o caminho do arquivo de configuração padrão, tente usar o -csinalizador, entãonginx -c /etc/nginx/sites-enabled/default -t
Mohammad AbuShady
Pode confirmar o que @MohammadAbuShady disse. Embora a página de manual de indique -tvagamente Não execute, apenas teste o arquivo de configuração. O nginx verifica a configuração quanto à sintaxe correta e, em seguida, tenta abrir os arquivos mencionados na configuração. os arquivos não são apenas verificados quanto à existência, mas também analisados. Como esperado, o código de saída é 1 se o erro for encontrado e 0 caso contrário.
Günther Eberl
9

Este comando específico funcionou para mim. sudo apt-get remove --purge nginx nginx-full nginx-common

e sudo apt-get install nginx

crédito a esta resposta na stackexchnage

Eric
fonte
0

Se quiser verificar o erro de sintaxe de qualquer arquivo nginx, você pode usar a opção -c.

[root@server ~]# sudo nginx -t -c /etc/nginx/my-server.conf
nginx: the configuration file /etc/nginx/my-server.conf syntax is ok
nginx: configuration file /etc/nginx/my-server.conf test is successful
[root@server ~]# 
Sreeraj Karichery
fonte