(ubuntu) nginx: [emerg] bind() pour 0.0.0.0:80 échoué (13: permission denied)

j'ai besoin d'aide pour trouver la cause profonde de cette erreur de permission refusée. De quelles permissions nginx a-t-il besoin? Pourquoi est-il si compliqué?

18
demandé sur user2350858 2013-08-28 09:44:13

5 réponses

l'API de socket lie () à un port inférieur à 1024, tel que 80 comme votre titre mentionné, ont besoin d'un accès root.

ici est "lient aux ports de moins de 1024 sans accès root"

et une autre façon plus facile est d'exécuter Nginx comme root.

21
répondu vvy 2017-04-13 12:13:43

si vous utilisez un port plus grand que 1024 et le privilège root, alors encore obtenir ce problème, qui peut causer par SELinux:

Vérifier ce port, dire 8024, dans segange port

sudo semanage port -l | grep http_port_t

si la liste des ports n ° 8024, alors ajoutez - la dans le port de 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 enforcing d'abord. Vérifier L'état de SELinux par

$ sestatus

D'autres étapes peuvent être lues ce merveilleux article: https://www.digitalocean.com/community/tutorials/an-introduction-to-selinux-on-centos-7-part-1-basic-concepts

5
répondu Belter 2017-12-22 08:37:26

Si vous voyez ce msg après l'exécution de "nginx -t", vous n'avez pas la premission exécuter en tant que root "sudo nginx -t"

2
répondu Koudi 2015-10-16 19:44:55

La meilleure solution serait:

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

usermod -aG sudo prod

2) inside circus (process manager ) ajoute sudo avant l'exécutable nginx, le mien ressemble à ceci:

[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 finalement ajouter une ligne dans le fichier /etc/sudoers ( mon utilisateur est prod). Cette ligne évite les erreurs (sudo: pas d'ATS présent et pas de programme askpass spécifié). Probablement besoin de redémarrer la session (redémarrage). Profiter.

prod ALL = NOPASSWD: /usr/sbin/nginx
1
répondu Taras Vaskiv 2018-03-29 17:42:30

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

sudo nginx

prochaine étape le long de avec votre mot de passe

0
répondu Pren Jak 2017-11-15 06:54:23