web-dev-qa-db-fra.com

Nginx ne démarrera pas (adresse déjà utilisée)

J'ai un problème avec nginx. J'ai essayé différentes solutions, mais pour moi rien ne marche… .. C'est mon erreur:

4 root@BANANAS ~ # Sudo service nginx restart                                :(
Restarting nginx: nginx: [emerg] bind() to [::]:443 failed (98: Address already in use)
nginx: [emerg] bind() to [::]:443 failed (98: Address already in use)
nginx: [emerg] bind() to [::]:443 failed (98: Address already in use)
nginx: [emerg] bind() to [::]:443 failed (98: Address already in use)
nginx: [emerg] bind() to [::]:443 failed (98: Address already in use)
nginx: [emerg] still could not bind()
nginx.

Pouvez-vous m'aider?

40
Herbert89

Un autre processus utilise probablement le port spécifié:

Sudo netstat -tulpn

Obtenez le PID du processus utilisant déjà 443. Et envoyez le signal avec la commande kill.

Sudo kill -2 <PID>

Sudo service nginx restart

Sinon, vous pouvez faire:

Sudo fuser -k 443/tcp

Assurez-vous de ne pas utiliser l'ancienne syntaxe:

server {
    listen :80;
    listen [::]:80;
}

La syntaxe ci-dessus entraînera 

nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)

Syntaxe correcte:

server {
    listen 80;
    listen [::]:80 ipv6only=on;
}

ou

server {
    listen [::]:80;
}

La syntaxe ci-dessus permettra d'obtenir la même chose, en écoutant ipv4 et ipv6.

56
Farhad Farahi

Une autre façon (d'après mon expérience) est simplement de forcer le processus que l'exécution sur ce port 443 

Sudo fuser -k 443/tcp 

ou si vous utilisez le port 80, changez simplement le port

Sudo fuser -k 80/tcp

J'espère que ça aide quelqu'un qui a eu le même problème 

Alternative utilisant lsof:

Trouver le PID et tuer le processus qui s'exécute sur le port 443

Sudo kill -9 $(lsof -t -i :443)
3

Merci pour la réponse. Après avoir couru 

Sudo netstat -tulpn

J'ai réalisé que Apache2 fonctionnait sur le port 80. Cela a probablement été fait après avoir utilisé Certbot pour installer SSL sur le serveur. J'ai supprimé Apache2 et le serveur était opérationnel.

apt remove Apache2

Cela a fait le tour! Merci encore.

1
ranaonline