Implementamos nosso aplicativo de trilhos no nginx e passenger.Intermitentemente, as páginas do aplicativo são carregadas parcialmente.Não há erro no log do aplicativo.Mas o log de erro do nginx mostra o seguinte:
2011/02/14 05:49:34 [crit] 25389#0: *645 open() "/opt/nginx/proxy_temp/2/02/0000000022" failed (13: Permission denied) while reading upstream, client: x.x.x.x, server: y.y.y.y, request: "GET /signup/procedures?count=0 HTTP/1.1", upstream: "passenger:unix:/passenger_helper_server:", host: "y.y.y.y", referrer: "http://y.y.y.y/signup/procedures"
Respostas:
Eu tive o mesmo problema em uma configuração NGINX / PHP-FPM (php-fpm = fcgi aprimorado para php).
Você pode descobrir qual usuário os processos nginx estão executando como
E verifique se as permissões nos seus arquivos proxy estão corretas
No meu caso, o nginx estava sendo executado
www-data
e dois dos diretórios no meu diretório proxy pertenciam ao root.Ainda não sei como aconteceu, mas consertei fazendo (como root)
fonte
Você provavelmente começou com o usuário root e o alterou. Agora o problema é que as pastas de cache, ou seja,
já são de propriedade do root, portanto, seu usuário do nginx (ou o que quer que esteja tentando mudar) não pode acessá-lo porque ele tem uma permissão de 700.
Portanto, a solução é fácil. Pare o nginx e, em seguida:
ou qualquer que seja o caminho em sua distribuição e liberação. Em seguida, reinicie o nginx, que recriará essas pastas com as permissões apropriadas.
fonte
Verifique também o arquivo nginx.conf para verificar se você está especificando o usuário E o grupo correto.
Ocorreu um problema em que as permissões no diretório foram configuradas para o nome de usuário / nginx, mas o usuário nginx.conf especificou apenas o nome de usuário. Por padrão, se nenhum grupo for fornecido para a diretiva de usuário, ele usará o mesmo nome que o usuário. Portanto, nome de usuário / nome de usuário estava tentando acessar um diretório em vez de nome de usuário / nginx. A atualização da configuração corrigiu meus problemas.
Veja: http://nginx.org/en/docs/ngx_core_module.html#user
fonte
Então eu fiz todas as opções acima e, infelizmente, para mim, estava me dando o mesmo erro. Estou executando um aplicativo de trilhos empacotado em um arquivo jar com torquebox em uma máquina centos 6.7 com nginx. Eu lutei com isso por cerca de 3 horas até encontrar outra solução e espero que ajude outra pessoa. De acordo com este artigo, o nginx pode ser executado no modo de imposição. Eu simplesmente mudei o nginx para o modo permissivo com
Com isso, o erro se foi e eu pude executar meu aplicativo em um ambiente de preparação / produção.
Fiquei sem noção até encontrar o erro no audit.log
Eu realmente espero que isso salve alguém nas 3 horas que acabei de perder.
fonte
setsebool -P httpd_can_network_connect 1
de stackoverflow.com/a/24830777/721331Ao iniciar o nginx a partir de uma conta não privilegiada, o
use_temp_path=off
.Isso era necessário para evitar que o nginx tentasse colocar os arquivos no padrão
proxy_temp_path
. Nos documentos nginx:fonte
Eu tive o mesmo problema e ele resolveu pelo chmod nesse diretório.
fonte