Wpis z mikrobloga

@interpolacja_liniowa: Nie zauważyłem wcześniej configu. Przede wszystkim - przy proxy errorów nie ma, bo proxy zawsze coś zwraca (nawet jak to jest 404, to zadaniem proxy jest przecież proxować także taką odpowiedź). Czyli obsługa odpowiedzi >300 powinna być na poziomie tym, gdzie proxy prowadzi (w sensie serwerów backendowych).

Jeżeli chcesz obsługiwać te błędy na poziomie nginxa to musisz na pewno dodać proxy_intercept_errors on;
http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_intercept_errors
Oczywiście trzeba to dodać w sekcji
  • Odpowiedz
@interpolacja_liniowa: To od Ciebie zależy. Albo musisz zrobić obsługę błędów na backendzie, albo jeżeli chcesz na tym serwerze proxy (co jak rozumiem chciałeś osiągnąć) to musisz dodać proxy_intercept_errors on;
Wtedy nginx przechwyci 404 z serwera zdalnego i już wewnątrz siebie go obsłuży wg ustawień.
  • Odpowiedz
@zwierzak40 Ok, dzięki zaraz sprawdzę, bo ogółem chodzi mi o to, że mam stronę z obrazkami i jest podstrona random która losuje tylko jeden obrazek z bazy 13 tysięcy obrazkow, tylko że musiałem zrobić przesiew i usunąć około 1000 obrazkow i czasem jak backend wylosuje taki usunięty to brzydko wygląda takie 404 w środku przeglądania
  • Odpowiedz
@interpolacja_liniowa: No, chyba że tak. Ale i w takim wypadku strona powinna być normalnie wygenerowana, bez obrazka, z poprawną paginacją, a zamiast obrazka jakimś komunikat o jego braku. Tak to użytkownik przegląda, przechodzi na kolejne podstrony a tu w pewnym momencie błąd 404/przekierowanie na główną czy cokolwiek? To nie jest dobre rozwiązanie.
  • Odpowiedz