Ich arbeite mit der Konfiguration des Django-Projekts mit Nginx und Gunicorn.
Während ich auf meinen Port gunicorn mysite.wsgi:application --bind=127.0.0.1:8001
im Nginx-Server zugreife , wird in meiner Fehlerprotokolldatei der folgende Fehler angezeigt.
30.05.2014 11:59:42 [krit] 4075 # 0: * 6 connect () zu 127.0.0.1:8001 fehlgeschlagen (13: Berechtigung verweigert) beim Herstellen einer Verbindung zum Upstream, Client: 127.0.0.1, Server: localhost, Anfrage: "GET / HTTP / 1.1", Upstream :
"http://127.0.0.1:8001/"
, Host: "localhost: 8080"
Unten ist der Inhalt meiner nginx.conf
Datei;
server {
listen 8080;
server_name localhost;
access_log /var/log/nginx/example.log;
error_log /var/log/nginx/example.error.log;
location / {
proxy_pass http://127.0.0.1:8001;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
}
}
In der HTML-Seite bekomme ich 502 Bad Gateway
.
Welchen Fehler mache ich?
quelle
yum install policycoreutils-python
um zuerst zu kommenaudit2allow
. Referenz: centos.org/forums/viewtopic.php?t=5012policycoreutils-python
den Befehl nicht bereitgestelltaudit2allow
. Nach einigen Recherchen fand ich, dass Sie das Entwicklungspaket installieren solltenyum install policycoreutils-devel
. Referenz: danwalsh.livejournal.com/61710.htmlIch bin auch auf dieses Problem gestoßen. Eine andere Lösung besteht darin, den booleschen SELinux-Wert für die httpd-Netzwerkverbindung umzuschalten
on
(Nginx verwendet das httpd-Label).Verwenden Sie das Flag -P, um die Änderung beizubehalten.
Sie können eine Liste aller verfügbaren SELinux-Booleschen Werte für httpd anzeigen, die http verwenden
quelle
Hatte ein ähnliches Problem bei Centos 7. Als ich versuchte, die von Sorin vorgeschriebene Lösung anzuwenden, begann ich mich in Zyklen zu bewegen. Zuerst wurde mir eine Erlaubnis {Schreiben} verweigert. Als ich dann löste, dass mir eine Erlaubnis {connectto} verweigert wurde. Dann wieder zurück zur Erlaubnis {schreiben} verweigert.
Nach der obigen Antwort von @Sid, bei der die Flags überprüft
getsebool -a | grep httpd
und umgeschaltet wurden, stellte ich fest, dass zusätzlich zu httpd_can_network_connect deaktiviert ist. http_anon_write war ebenfalls deaktiviert, was dazu führte, dass die Berechtigung zum Schreiben verweigert und die Berechtigung verweigert wurde.Erhalten mit sudo cat /var/log/audit/audit.log | grep nginx | grep bestritt wie oben erklärt.
Also löste ich sie einzeln und schaltete die Flaggen einzeln ein.
Führen Sie dann die oben unter @sorin und @Joseph angegebenen Befehle aus
Grundsätzlich können Sie die für setsebool festgelegten Berechtigungen überprüfen und diese mit dem Fehler korrelieren, der durch das Ablehnen von audit.log nginx erhalten wurde
quelle
Ich habe mein Problem gelöst, indem ich mein Nginx als den Benutzer ausgeführt habe, mit dem ich derzeit angemeldet bin, Mulagala .
Standardmäßig wird der Benutzer als nginx ganz oben in der
nginx.conf
Datei definiert (siehe unten).Ändern Sie nginx in den Namen Ihres aktuellen Benutzers - hier Mulagala .
Dies kann jedoch möglicherweise das eigentliche Problem nicht lösen und kann tatsächlich gelegentliche Nebenwirkungen haben.
Eine effektive Lösung finden Sie in der Lösung von Joseph Barbere .
quelle
Wenn der Fehler "502 Bad Gateway" die Centos-API-URL für den API-Gateway-Proxy-Pass auf Nginx auslöst, führen Sie den folgenden Befehl aus, um das Problem zu beheben
quelle
13-Erlaubnis-verweigert-während-Verbindung-zu-Upstreamnginx auf Centos-Server -
setsebool -P httpd_can_network_connect 1
quelle
Ich bin auch auf dieses Problem gestoßen. Ich verwende Nginx mit HHVM. Die folgende Lösung hat mein Problem behoben:
quelle
/etc/nginx/nginx.conf
Jetzt sieh die Magie.
quelle
Ich danke dir sehr. Ich habe dieses Handbuch angewendet auf: Centos 7, AspNet Core 3.1, Nginx-Setup.
quelle
Vielen Dank für die Antworten. Die Antwort von Kumar am 21. August 19 um 12:14 gab mir eine Pause nach einigen Tagen der Fehlerbehebung bei dem Problem, das ich hatte, dh:
Die Lösung, die ich angewendet habe, war wie folgt:
quelle
quelle