Nginx + uWSGI em uma nova instalação do Ubuntu - conecte a porta de erro 80

1

Eu sei que este é um problema comum, geralmente relacionado ao apache ou a outro serviço que já está sendo executado na porta 80, e fiz muita pesquisa e execução do netstat e ainda não descobri por que estou recebendo esse erro.

Eu reconstruí minha fatia, fiz uma nova instalação do Ubuntu 10.04 e configurei o nginx + uwsgi. Funcionou e pude ver meu site do Django. Eu então instalei o Postgres8.4 e o restante da pilha necessária para o Geodjango de este link .

Depois disso, tentei reiniciar o nginx e recebi este erro:

sudo /etc/init.d/nginx start
Starting nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
configuration file /usr/local/nginx/conf/nginx.conf test is successful
[emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)
[emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)
[emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)
[emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)
[emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)
[emerg]: still could not bind()

Eu tenho o nginx configurado para ouvir 80. Aqui está uma saída de netstat -l --numeric-ports | grep 80 :

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:8000          0.0.0.0:*               LISTEN

Saída de sudo lsof +M -i4 :

nginx    2330     root    8u  IPv4   3195      0t0  TCP *:www (LISTEN)
nginx    2331 www-data    8u  IPv4   3195      0t0  TCP *:www (LISTEN)
uwsgi    2335        s    4u  IPv4   3259      0t0  TCP localhost:8000 (LISTEN)
uwsgi    2352        s    4u  IPv4   3259      0t0  TCP localhost:8000 (LISTEN)
uwsgi    2353        s    4u  IPv4   3259      0t0  TCP localhost:8000 (LISTEN)
uwsgi    2354        s    4u  IPv4   3259      0t0  TCP localhost:8000 (LISTEN)
uwsgi    2355        s    4u  IPv4   3259      0t0  TCP localhost:8000 (LISTEN)

Alguém tem alguma outra ideia de como eu posso descobrir o que está bloqueando a porta 80?

editar

Cole o meu script /etc/init.d/nginx aqui: link

    
por knuckfubuck 09.02.2011 / 03:07

4 respostas

2

Você não deveria ter emitido restart como argumento para seu script de inicialização?

Eu esperaria

sudo /etc/init.d/nginx start

para reclamar se o nginx já estava em execução. O que parece que foi.

    
por 09.02.2011 / 04:41
1

fuser -n tcp 80 mostrará um PID do processo usando a porta 80.

    
por 09.02.2011 / 03:17
1

netstat -plan

irá fornecer-lhe o nome do processo e depois usar killall -9

e reinicie você nginx

    
por 10.02.2011 / 06:39
0

Sugiro que cole seus arquivos de configuração reais de /etc/nginx/sites-enabled. Além disso, você pode tentar ser mais explícito sobre os endereços IP aos quais está vinculando.

Recentemente experimentei estranheza com nginx (8.54) e uWsgi (.96) em servidores de nó KVM Ubuntu 10.10. Eu empreguei ligação de endereço não local combinada com VLAN / ligação 802.3ad e bridging para que a configuração seja similar em teoria a uma "fatia" do seu provedor. Meu palpite é que isso estava relacionado ao nginx, embora as camadas subjacentes do Ubuntu também estejam passando por grandes mudanças.

Sugiro que seja o mais explícito possível ao configurar o nginx. Especialmente em um ambiente com vários IPs ou endereços IP com alias em uma única interface.

link

    
por 05.03.2011 / 15:52