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?
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.
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)
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.