Wdrożyliśmy naszą aplikację Railsową na Nginxie i pasażerze. Czasami strony aplikacji są ładowane częściowo. W dzienniku aplikacji nie ma błędów.
2011/02/14 05:49:34 [crit] 25389#0: *645 open() "/opt/nginx/proxy_temp/2/02/0000000022" failed (13: Permission denied) while reading upstream, client: x.x.x.x, server: y.y.y.y, request: "GET /signup/procedures?count=0 HTTP/1.1", upstream: "passenger:unix:/passenger_helper_server:", host: "y.y.y.y", referrer: "http://y.y.y.y/signup/procedures"
Odpowiedzi:
Miałem ten sam problem z instalacją NGINX / PHP-FPM (php-fpm = ulepszone fcgi dla php).
Możesz dowiedzieć się, który użytkownik uruchamia procesy nginx
A następnie sprawdź, czy uprawnienia w plikach proxy są prawidłowe
W moim przypadku nginx działał jako,
www-data
a dwa katalogi w moim katalogu proxy należały do katalogu głównego.Nie wiem jeszcze, jak to się stało, ale naprawiłem to, wykonując (jako root)
źródło
Prawdopodobnie zacząłeś od użytkownika root, a następnie go zmieniłeś. Problem polega na tym, że foldery pamięci podręcznej, tj
są już własnością użytkownika root, więc użytkownik nginx (lub cokolwiek, na co próbujesz się przełączyć) nie może uzyskać do nich dostępu, ponieważ ma pozwolenie 700.
Więc rozwiązanie jest łatwe. Zatrzymaj nginx, a następnie:
lub jakąkolwiek ścieżką jest twoja dystrybucja i wydanie. Następnie uruchom ponownie nginx, który ponownie utworzy te foldery z odpowiednimi uprawnieniami.
źródło
Sprawdź także plik nginx.conf, aby upewnić się, że określasz poprawnego użytkownika ORAZ grupę.
Miałem problem z tym, że uprawnienia do katalogu były skonfigurowane dla nazwy użytkownika / nginx, ale użytkownik nginx.conf podał tylko nazwę użytkownika. Domyślnie, jeśli żadna grupa nie jest podana w dyrektywie użytkownika, używa tej samej nazwy co użytkownik. Więc nazwa użytkownika / nazwa użytkownika próbowała uzyskać dostęp do katalogu zamiast nazwy użytkownika / nginx. Aktualizacja konfiguracji rozwiązała moje problemy.
Zobacz: http://nginx.org/en/docs/ngx_core_module.html#user
źródło
Zrobiłem więc wszystkie powyższe i niestety dla mnie to dawało ten sam błąd. Korzystam z aplikacji railsowej spakowanej do pliku jar z torquebox na maszynie centos 6.7 z nginx. Walczyłem z tym przez około 3 godziny, aż znalazłem inne rozwiązanie i mam nadzieję, że to pomoże komuś innemu. Zgodnie z tym artykułem nginx może działać w trybie wymuszania. Właśnie zmieniłem nginx na tryb zezwalający
Dzięki temu błąd zniknął i mogłem uruchomić moją aplikację w środowisku testowym / produkcyjnym.
Nie miałem pojęcia, dopóki nie znalazłem błędu w pliku audit.log
Naprawdę mam nadzieję, że to kogoś uratuje 3 godziny, które właśnie straciłem.
źródło
setsebool -P httpd_can_network_connect 1
from stackoverflow.com/a/24830777/721331Podczas uruchamiania nginx z nieuprzywilejowanego konta
use_temp_path=off
.Musiało to zapobiec próbom umieszczenia plików przez Nginx w ustawieniach domyślnych
proxy_temp_path
. Z dokumentów nginx:źródło
Miałem ten sam problem i rozwiązany przez chmod do tego katalogu.
źródło