2011-09-08 26 views
10

Używam aplikacji Django na platformie Linux z gunicorn i Nginx. Pozwolę użytkownikom przesłać plik CSV (około 2 MB), który aplikacja przetwarza i dodaje do bazy danych zaplecza. Problem dotyczy dużych plików, po upływie około 2 lub 3 minut wydaje się, że upłynął limit czasu i wyświetlana jest strona 404 Not Found nginx/0.7.6. Adres URL nie zmienia się jednak - tzn. Pozostaje adresem URL strony przesyłania plików w mojej aplikacji.Przekroczono limit czasu podczas przesyłania dużego pliku?

W nginx dziennika błędów pokazuje:

2011/09/08 13:28:05 [Błąd] 1349 # 0: * 303 upstream timed out (110: Connection timed out) podczas czytania nagłówka odpowiedzi od upstream, klient: 213.146.112.122, serwer: _, żądanie: "POST/app/import_csv/HTTP/1.1", wcześniej:

Jakieś pomysły, co się dzieje? Jak mogę zwiększyć ten limit czasu?

+0

Jak duży jest plik? –

+0

Plik ma około 2 MB. Zaktualizowałem to pytanie tymi informacjami. Dzięki. – dougv

Odpowiedz

14

I dodaje:

proxy_read_timeout 1200; 

do nginx.conf. Zwiększyło to przekroczenie limitu czasu, który rozwiązał problem. Prawdopodobnie nie potrzebuję używać 1200, to tylko pierwsza wartość, którą próbowałem.

+0

Dobra robota. Możesz zaakceptować swoją odpowiedź. – christophe31

+1

Odpowiednik Apache to: ProxyTimeout sekund (domyślnie 300), , a odpowiednik Gunicorn to: -t sekund (domyślnie 30!). referencje: http://httpd.apache.org/docs/2.0/mod/mod_proxy.html#proxytimeout, http://gunicorn.org/configure.html#timeout – tutuDajuju

Powiązane problemy