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.
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
fuser -n tcp 80
mostrará um PID do processo usando a porta 80.
netstat -plan
irá fornecer-lhe o nome do processo e depois usar killall -9
e reinicie você nginx
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.