nginx pas commencé et ne peut pas démarrer
J'ai eu un problème que j'essaie de résoudre depuis quelques jours maintenant et je ne sais pas quoi faire, ont été à la recherche de réponses, mais tous ceux que j'ai trouvé ne m'a pas aidé.
Je suis un peu nouveau ici et j'espère vraiment que quelqu'un pourra m'aider.
Vous pouvez me dire laquelle les informations que j'ai besoin de donner dans l'espoir de trouver une solution.
$ systemctl status nginx.service
nginx.service - Startup script for nginx service
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Tue 2016-03-08 13:23:35 GMT; 2min 20s ago
Mar 08 13:23:33 startdedicated.com nginx[8315]: nginx: [emerg] bind() to ------------ f...e)
Mar 08 13:23:33 startdedicated.com nginx[8315]: nginx: [emerg] bind() to ----- f...e)
Mar 08 13:23:34 startdedicated.com nginx[8315]: nginx: [emerg] bind() to ----- f...e)
Mar 08 13:23:34 startdedicated.com nginx[8315]: nginx: [emerg] bind() to ----- f...e)
Mar 08 13:23:35 startdedicated.com nginx[8315]: nginx: [emerg] bind() to ----- f...e)
Mar 08 13:23:35 .startdedicated.com nginx[8315]: nginx: [emerg] still could not bind()
Mar 08 13:23:35 startdedicated.com systemd[1]: nginx.service: control process exited, code=...=1
Mar 08 13:23:35 startdedicated.com systemd[1]: Failed to start Startup script for nginx service.
Mar 08 13:23:35 startdedicated.com systemd[1]: Unit nginx.service entered failed state.
Mar 08 13:23:35 startdedicated.com systemd[1]: nginx.service failed.
source d'informationauteur daliborsb
Vous devez vous connecter pour publier un commentaire.
Peut être utile pour vérifier la syntaxe de Nginx fichiers de configuration de la:
Essayez de déboguer avec la commande:
Qui sort quelque chose comme:
Et corriger ces avertissements
Puis redémarrer nginx
Quand quelque chose ne peut pas se lier à un port, il est à 5%, car il n'est pas lancé par root (sticky bit suid, sudo) et 94% parce qu'une autre application est déjà lié à ce port.
Assurez-vous que nginx est vraiment à l'arrêt et que vous n'essayez pas de démarrer deux fois par accident.
Assurez-vous que vous n'avez pas d'Apache ou d'autres services en cours d'exécution qui utilise le port 80.
Utiliser
netstat -a | grep tcp
pour en savoir plus.J'ai eu le même problème lorsque j'ai utilisé de Vesta, qui utilise nginx avec apache. Le problème était que, après l'application de toutes les mises à jour d'Apache commencé à écouter 443 pour https. La solution était tout simplement de commenter l'443 trucs dans les ports.conf. C'est parce que nginx utilise également ce port.
Essayer de définir un utilisateur de nginx.conf, c'est peut-être pourquoi il ne peut pas démarrer le service:
ps ax | grep nginx
kill -9 Pid
service nginx commencer
ou l'ensemble du dos /etc/nginx/sites-available/default
emplacement /{
# Première tentative pour servir la demande en tant que fichier, puis
# dans le répertoire, puis revenir à l'affichage d'une page 404.
try_files $uri $uri =404;
}
Si
nginx -t
ne retourne rien, je voudrais vérifier Nginx journal des erreurs. Par défaut, il devrait être situé dans/var/log/nginx/error.log
.Vous pouvez l'ouvrir avec un éditeur de texte:
sudo nano /var/log/nginx/error.log
Pouvez-vous trouver quelque chose de suspect?
Le deuxième journal vous pouvez le vérifier est la suivante
sudo nano /var/log/syslog
Quand j'ai eu ce problème, c'était parce que mon fournisseur d'hébergement a été automatiquement l'installation d'Apache lors d'une installation propre. Il était de bloquer le port 80.
Quand j'ai exécuté
sudo nano /var/log/nginx/error.log
j'ai obtenu les informations suivantes dans le journal des erreurs:Ce que l'erreur ci-dessus est de dire, c'est qu'il n'a pas été en mesure de lier nginx sur le port 80 car il était déjà en cours d'utilisation.
Pour résoudre ce problème, vous devez exécuter les opérations suivantes:
yum install net-tools
sudo netstat -tulpn
Lorsque vous exécutez le ci-dessus, vous obtiendrez quelque chose comme ce qui suit:
Vous pouvez voir que le port 80 est bloqué par httpd (Apache). Cela pourrait également être le port 443 si vous utilisez SSL.
Obtenir le PID du processus qui utilise le port 80 ou 443. Et envoyer la commande kill la modification de la
<PID>
valeur:sudo kill -2 <PID>
Note dans mon exemple le PID de Apache a
1762
donc, je voudrais exécutersudo kill -2 1762
Aternatively vous pouvez exécuter les opérations suivantes:
sudo fuser -k 80/tcp
sudo fuser -k 443/tcp
Maintenant que le port 80 ou 443 est clair, vous pouvez commencer à Nginx en exécutant la commande suivante:
sudo service nginx restart
Il est également conseillé de retirer Apache (httpd) si vous ne l'utilisez pas. Cela permettra d'éviter tout conflit dans l'avenir. Je l'ai fait en exécutant la commande suivante:
yum remove httpd httpd-devel httpd-manual httpd-tools mod_auth_kerb mod_auth_mysql mod_auth_pgsql mod_authz_ldap mod_dav_svn mod_dnssd mod_nss mod_perl mod_revocator mod_ssl mod_wsgi
Espère que cette aide.
Je suis en utilisant RHEL 7,4 avec de NGINX 1.13.8 et si je fais la même chose avec sudo, il fonctionne Ok:
Juste assurez-vous que celui qui veut utiliser
nginx.service
a les permissions d'exécution.utiliser ces commandes pour
sudo service apache2 stop
sudo apt-get purge apache2
sudo apt-get update
sudo apt-get install nginx
sudo service nginx restart