Pracuję z konfigurowaniem projektu Django z Nginx i Gunicorn.
Podczas uzyskiwania dostępu do mojego portu gunicorn mysite.wsgi:application --bind=127.0.0.1:8001
na serwerze Nginx pojawia się następujący błąd w moim pliku dziennika błędów;
2014/05/30 11:59:42 [kryty] 4075 # 0: * 6 połączenie () do 127.0.0.1:8001 nie powiodło się (13: Odmowa dostępu) podczas łączenia z nadrzędnym, klient: 127.0.0.1, serwer: localhost, żądanie: „GET / HTTP / 1.1”, upstream:,
"http://127.0.0.1:8001/"
host: „localhost: 8080”
Poniżej znajduje się treść mojego nginx.conf
pliku;
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;
}
}
Dostaję na stronie HTML 502 Bad Gateway
.
Jaki popełniam błąd?
źródło
yum install policycoreutils-python
, aby uzyskaćaudit2allow
pierwsze. Odniesienie: centos.org/forums/viewtopic.php?t=5012policycoreutils-python
nie podała poleceniaaudit2allow
. Po kilku badaniach odkryłem, że powinieneś zainstalować pakiet develyum install policycoreutils-devel
. Odniesienie: danwalsh.livejournal.com/61710.htmlTeż natrafiłem na ten problem. Innym rozwiązaniem jest przełączenie wartości logicznej SELinux dla połączenia httpd z siecią
on
(Nginx używa etykiety httpd).Aby utrzymać zmianę, użyj flagi -P.
Możesz zobaczyć listę wszystkich dostępnych boolanów SELinux dla httpd używających
źródło
Miałem podobny problem na Centos 7. Kiedy próbowałem zastosować rozwiązanie przepisane przez Sorina, zacząłem poruszać się cyklicznie. Najpierw odmówiono mi pozwolenia. Potem, kiedy rozwiązałem problem, odmówiono mi pozwolenia {connectto}. Następnie wróć do pozwolenia {write} odmowa.
Po powyższej odpowiedzi @Sid sprawdzania za pomocą flag
getsebool -a | grep httpd
i przełączania ich znalazłem, że oprócz httpd_can_network_connect jest wyłączony. http_anon_write również był wyłączony, co spowodowało odmowę zapisu i odmowę dostępu {connectto}Otrzymane przy użyciu sudo cat /var/log/audit/audit.log | grep nginx | grep odmowa, jak wyjaśniono powyżej.
Rozwiązałem je więc pojedynczo, przełączając flagi po kolei.
Następnie uruchom polecenia określone przez @sorin i @Joseph powyżej
Zasadniczo możesz sprawdzić uprawnienia ustawione w setsebool i skorelować to z błędem uzyskanym z grepp'ing 'audit.log nginx, odmowa
źródło
Rozwiązałem problem, uruchamiając Nginx jako użytkownik, z którego jestem obecnie zalogowany, Mulagala .
Domyślnie użytkownik jako nginx jest zdefiniowany w górnej części
nginx.conf
pliku, jak pokazano poniżej;Zmień nginx na nazwę bieżącego użytkownika - tutaj, Mulagala .
Może to jednak nie rozwiązać rzeczywistego problemu i może mieć rzeczywiste skutki uboczne.
Aby znaleźć skuteczne rozwiązanie, zapoznaj się z rozwiązaniem Josepha Barbere'a .
źródło
jeśli błąd „502 Bad Gateway” generuje adres URL apos centos dla przekazywania proxy interfejsu API api na nginx, uruchom następujące polecenie, aby rozwiązać problem
źródło
13-permission-denied-while-connection-to-upstreamnginx na serwerze centos -
setsebool -P httpd_can_network_connect 1
źródło
Też natrafiłem na ten problem. Używam Nginx z HHVM, poniższe rozwiązanie naprawiło mój problem:
źródło
/etc/nginx/nginx.conf
Teraz zobacz magię.
źródło
Dziękuję bardzo. Zastosowałem ten przewodnik na: Centos 7, AspNet Core 3.1, konfiguracja Nginx.
źródło
Dziękuję wszystkim za odpowiedzi. Odpowiedź Kumara z 21 sierpnia 19 o 12:14 dała mi wytchnienie po kilku dniach rozwiązywania problemu, który miałem, tj .:
Zastosowane przeze mnie rozwiązanie było następujące:
źródło
źródło