Как сказано в документации к Nginx, параметр fastcgi_read_timeout может быть указан на уровне location. Но, например, такая конфигурация, при длительном запросе, работать не будет.
1 2 3 4 5 6 7 8 9 10 11 |
location ~ "^\/filename\.xml" { rewrite ^ /createfilename.php last; fastcgi_read_timeout 3600s; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } |
Возникает ошибка:
1 |
2016/06/07 17:47:41 [error] 1295#0: *1 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 127.0.0.1, server: o2b.ru, request: "GET /filename.xml HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "o2b.ru" |
В документации не сказано, что fastcgi_read_timeout должен быть определен только в конечном location.
Рабочая схема:
1 2 3 4 5 6 7 8 |
location ~ "^\/filename\.xml)" { rewrite ^ /createfilename.php break; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_read_timeout 3600s; } |