web-dev-qa-db-fra.com

(ubuntu) nginx: [émerg] bind () à 0.0.0.0:80 a échoué (13: permission refusée)

J'ai besoin d'aide pour déterminer la cause première de cette erreur d'autorisation refusée. Quelles sont les autorisations nécessaires à nginx? Pourquoi est-ce si compliqué?

20
user2350858

l'API de socket bind () vers un port inférieur à 1024, tel que 80 comme votre titre mentionné, nécessite un accès root.

here " Lié aux ports de moins de 1024 sans accès root "

et un autre moyen plus simple consiste à exécuter nginx en tant que root.

21
vvy

Si vous utilisez un port supérieur à 1024 et un privilège root, vous obtenez toujours ce problème, ce qui peut entraîner SELinux:

Vérifiez ce port, disons 8024, dans le port segange

Sudo semanage port -l | grep http_port_t

Si le port ne contient pas la liste 8024, ajoutez-le au port segange

Sudo semanage port -a -t http_port_t  -p tcp 8024

mise à jour en 2017.12.22

Parfois, votre SELinux est disabled, vous devez le enforcing en premier. Vérifiez le statut de SELinux par 

$ sestatus

Plus d'étapes peuvent lire cet article merveilleux: https://www.digitalocean.com/community/tutorials/an-introduction-to-selinux-on-centos-7-part-1-basic-concepts

7
Belter

Si vous voyez ce message après l'exécution de "nginx -t", vous ne disposez pas de l'autorisation d'exécution en tant que root "Sudo nginx -t"

2
Koudi

La meilleure solution serait:

1) ajouter un utilisateur à sudoers (mon utilisateur est prod)

usermod -aG Sudo prod

2) Dans Circus (gestionnaire de processus), ajoutez Sudo avant l’exécutable nginx.

[watcher:nginx]
cmd = Sudo /usr/sbin/nginx
args = -c /home/t/Projects/x_b_11/etc/nginx.conf -p /home/t/Projects/x_b_11

3) et enfin ajouter une ligne dans le fichier/etc/sudoers (mon utilisateur est prod). Cette ligne évite les erreurs (Sudo: aucun tty présent et aucun programme askpass spécifié). Probablement besoin de redémarrer la session (redémarrage). Prendre plaisir.

prod ALL = NOPASSWD: /usr/sbin/nginx
1
Taras Vaskiv

nginx a besoin d'un accès root. veuillez utiliser 

Sudo nginx 

prochaine étape avec votre mot de passe

0
Pren Jak