Estoy luchando con un comportamiento extraño relacionado con los permisos: cuando configuro nginx para escuchar el puerto 8080 todo funciona como se esperaba, pero cuando uso cualquier otro puerto obtengo algo como
2014/01/10 09:20:02 [emerg] 30181#0: bind() to 0.0.0.0:8090 failed (13: Permission denied)
en /var/log/nginx/error.log
No tengo idea de dónde mirar, así que realmente no sé qué partes de la configuración podrían ser interesantes.
en nginx.conf nginx está configurado para ejecutarse como nginx:
user nginx;
También el usuario nginx está en otro grupo 'git'
en la configuración del sitio intenté escuchar así:
server {
listen 8090; #does not work
#listen 8080; #works
#listen 9090; #does not work
#listen 9090 default; #does not work neighter
#listen 80; #works!
server_name <some IP>;
...
}
Solo tengo un oyente más que sirve al puerto 443.
Cuando inicio algún otro servicio, por ejemplo, un SimpleHTTPServer
en el puerto 8090, etc., como no root, todo funciona bien:
$ python -m SimpleHTTPServer 8090
Serving HTTP on 0.0.0.0 port 8090 ...
localhost.localdomain - - [10/Jan/2014 09:34:19] "GET / HTTP/1.1" 200 -
¿Cuáles pueden ser los motivos de los permisos denegados en general?
El sistema es Fedora 18 ngnix es stock fedora 1.2.9
fuente
/var/log/audit/audit.log
.Respuestas:
Esto probablemente estará relacionado con SELinux
Como puede ver en el resultado anterior con SELinux en modo de ejecución, http solo puede unirse a los puertos enumerados. La solución es agregar los puertos que desea enlazar a la lista
agregará el puerto 8090 a la lista.
fuente
semanage: command not found
, puede instalarlo conyum install policycoreutils-python
.