Hemos implementado nuestra aplicación de rieles en nginx y pasajeros. De manera intermitente, las páginas de la aplicación se cargan parcialmente. No hay ningún error en el registro de la aplicación. Pero el registro de error de nginx muestra lo siguiente:
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"
Respuestas:
Tuve el mismo problema en una configuración NGINX / PHP-FPM (php-fpm = fcgi mejorado para php).
Puede averiguar en qué usuario se ejecutan los procesos nginx como
Y luego verifique si los permisos en sus archivos proxy son correctos
En mi caso, nginx se estaba ejecutando como
www-data
y dos de los directorios en mi directorio proxy pertenecían a root.Todavía no sé cómo sucedió, pero lo arreglé haciendo (como root)
fuente
Probablemente comenzó con la raíz del usuario, luego la cambió. Ahora el problema es que las carpetas de caché, es decir
ya son propiedad de root, por lo que su usuario nginx (o lo que sea que intente cambiar) no puede acceder a ellos porque tienen un permiso de 700.
Entonces la solución es fácil. Pare nginx, luego:
o cualquiera que sea el camino en su distribución y liberación. Luego reinicie nginx, que volverá a crear estas carpetas con los permisos adecuados.
fuente
Compruebe también el archivo nginx.conf para asegurarse de que está especificando el usuario Y el grupo correctos.
Tuve un problema donde los permisos en el directorio estaban configurados para username / nginx, pero el usuario nginx.conf solo especificaba el nombre de usuario. De manera predeterminada, si no se da un grupo a la directiva del usuario, usa el mismo nombre que el usuario. Entonces, username / username estaba intentando acceder a un directorio en lugar de username / nginx. Actualizar la configuración solucionó mis problemas.
Ver: http://nginx.org/en/docs/ngx_core_module.html#user
fuente
Así que hice todo lo anterior y desafortunadamente para mí me estaba dando el mismo error. Estoy ejecutando una aplicación de rails empaquetada en un archivo jar con torquebox en una máquina centos 6.7 con nginx. Luché contra esto durante aproximadamente 3 horas hasta que encontré otra solución y espero que ayude a alguien más. De acuerdo con este artículo, nginx puede ejecutarse en modo forzado. Simplemente cambié nginx a modo permisivo con
Con eso, el error desapareció y pude ejecutar mi aplicación en un entorno de preparación / producción.
No tenía idea hasta que encontré el error en audit.log
Realmente espero que esto le ahorre a alguien las 3 horas que acabo de perder.
fuente
setsebool -P httpd_can_network_connect 1
de stackoverflow.com/a/24830777/721331Al iniciar nginx desde una cuenta no privilegiada, la
use_temp_path=off
.Esto necesitaba evitar que nginx intentara poner los archivos en el valor predeterminado
proxy_temp_path
. De los documentos nginx:fuente
Tuve el mismo problema y lo solucionó chmod en ese directorio.
fuente