Estou tendo algum comportamento estranho relacionado à permissão: quando configuro o nginx para ouvir a porta 8080, tudo funciona como esperado, mas quando uso qualquer outra porta, recebo algo como
2014/01/10 09:20:02 [emerg] 30181#0: bind() to 0.0.0.0:8090 failed (13: Permission denied)
em /var/log/nginx/error.log
Não tenho idéia de onde procurar, então não sei realmente quais partes da configuração podem ser interessantes.
no nginx.conf o nginx está configurado para ser executado como nginx:
user nginx;
O usuário nginx também está em outro grupo 'git'
no site-config tentei ouvir assim:
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>;
...
}
Eu tenho apenas mais um ouvinte que serve a porta 443.
Quando inicio algum outro serviço, por exemplo, um SimpleHTTPServer
na porta 8090 etc. como não raiz tudo funciona bem:
$ 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 -
Quais podem ser os motivos das permissões negadas em geral?
Sistema é Fedora 18 ngnix é estoque fedora 1.2.9
fonte
/var/log/audit/audit.log
.Respostas:
Provavelmente, isso está relacionado ao SELinux
Como você pode ver na saída acima, com o SELinux no modo de imposição, o http só pode ser vinculado às portas listadas. A solução é adicionar as portas que você deseja ligar à lista
adicionará a porta 8090 à lista.
fonte
semanage: command not found
, você pode instalá-lo comyum install policycoreutils-python
.