temafey

Рейтинг
1
Регистрация
28.04.2012
myhand:
Это таки теоретическое рассуждение, или вы пробовали менять параметры, на которые *явно ругается* nginx?

Я менял настройки nginx,исключал upstream backend, а в основном server проекта ставил не proxy_pass backend; , а fastcgi_pass и все работает нормально и с постом стрингов и с загрузкой файлов(не огромных размеров)

myhand:

Проблема со всеми такими файлами, или возникает выборочно (например, в зависимости от нагрузки на сервере)?

это девелоп ветка пока что, без нагрузок даже тестовых

У меня два симптома большой стринг и или файл больше 200 кб

myhand:

Меняйте таймауты для fastcgi на бакенде, как вам уже объясняли выше.

Таймауты несут следствие,а не причину,можно поставить любой таймаут это не поможет,так как сам запрос подвисает,отдает только часть,бэкэнд ждет окончания,но так и не дожидается, пока не сработает таймаут.

DJ3:
И еще посмотрите php.ini
на время выполнения php max_execution_time, может быть сам скрипт по тамауту убивается, до того, как все переварится сервером.

Это не имеет значение, так как при более простой схеме, которую я описывал выше, точно такой же запрос выполняеться без задержек и очень быстро,

в базу попадает контент только он не полный, такое ощущение, что прокси отдает не всё и не может дождаться ответа от апстрима, пока не сработает таймаут,

хотя я заметил закономерность, что обновления не попадают пока не сработает прокси таймаут

DJ3:
Для аплоада больших файлов используйте модуль nginx-upload-module

Изображения до 1 мегабайта можно считать большими файлами

nginx version: nginx/1.2.0

configure arguments: --prefix=/usr/local/etc/nginx --with-cc-opt='-I /usr/local/include' --with-ld-opt='-L /usr/local/lib' --conf-path=/usr/local/etc/nginx/nginx.conf --sbin-path=/usr/local/sbin/nginx --pid-path=/var/run/nginx.pid --error-log-path=/var/log/nginx-error.log --user=www --group=www --http-client-body-temp-path=/var/tmp/nginx/client_body_temp --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi_temp --http-proxy-temp-path=/var/tmp/nginx/proxy_temp --http-scgi-temp-path=/var/tmp/nginx/scgi_temp --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi_temp --http-log-path=/var/log/nginx-access.log --with-http_stub_status_module --with-pcre

retexica:
Измените time out для ожидания ответа от скрипта - fastcgi_read_timeout 60s хотя бы на

fastcgi_read_timeout 120s;

Это тестовые значения, я пробовал и такие, если настроить не через проксирование, а через fastcgi напрямую то выполняеться все очень быстро за секунду-две

---------- Добавлено 28.04.2012 в 14:57 ----------

пробовал более детальные настройки прокси

proxy_redirect off;

proxy_buffering off;

client_body_buffer_size 128k;

proxy_connect_timeout 90;

proxy_send_timeout 200;

proxy_read_timeout 200;

proxy_buffer_size 4k;

proxy_buffers 4 32k;

proxy_busy_buffers_size 64k;

proxy_temp_file_write_size 64k;

не как не повлияло

madoff:
лог ошибок нужен, в момент ошибки.

Ошибка в логе бэкэнда

[error] 73414#0: *83 upstream timed out (60: Operation timed out) while sending request to upstream, client: 46.4.99.252, server: site.com, request: "POST /main/pages/submit/3828 HTTP/1.0", upstream: "fastcgi://unix:/tmp/php5-fpm.sock:"