A sintaxe Nginx está correta aqui, portanto, o problema tem a ver com o ambiente do servidor. Aqui estão algumas coisas que você pode fazer para depurá-lo.
-
Simule o que o servidor da Web faria. Tente gravar no arquivo usando o mesmo usuário que o servidor da Web usaria. Se o usuário do servidor da web for nginx, tente isto como root:
su -m nginx -c 'echo "testing">>/var/www/example.com/logs/example.com_error.log'
-
Veja o que o servidor da Web está fazendo. Como uma medida temporária de depuração, no nível superior de sua configuração do Nginx, adicione
daemon off
. Em seguida, pare o Nginx e comece comstrace nginx | tee nginx-output.txt
. Em seguida, ele será executado em primeiro plano e emitirá todas as chamadas do sistema feitas para o STDOUT, que também será capturado no nginx-output.txt. Faça algo para acionar o erro e, em seguida, você pode parar o Nginx, remover a linha "daemon" e iniciá-la normalmente enquanto revisa o log de depuração. Procure nele as menções do nome do arquivo em questão. Talvez você o encontre lá, com um erro retornado da chamada do sistema tentando acessar o arquivo.
Outra possibilidade é que você discorda do Nginx sobre o que deveria estar aparecendo no log de erros. Se nginx -V | grep debug
obtiver um resultado, você poderá alterar o último argumento para error_log
de error
para debug
. Recarregue o Nginx e acerte um URL que não existe no domínio, isso deve gerar muitos registros. Desative debug
logging quando terminar.