Nginx - upstream prematurely closed connection

12
Goldsnich
На сайте с 17.07.2011
Offline
52
26201

На сервере стоит nginx в качестве вебсервера, php обрабатывается через phpFPM. Сегодня заметила проблему при импорте базы mysql через phpMyadmin. Проблема наблюдается, когда файл импорта превышает 3 мб, php бакенд апача уходит -


504 Gateway Timeout

В логе появляется запись


[error] 60930#0: *452 upstream prematurely closed connection while reading response header from upstream, client: 77.XX.XX.XX, server: domain.com, request: "GET /phpmyadmin/ HTTP/1.1", upstream: "fastcgi://unix:/tmp/php5-fpm.sock2:", host: "domain.com"

Часть конфига где обрабатывается .php


location ~ \.php$ {
# fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_pass unix:/tmp/php5-fpm.sock2;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;

fastcgi_intercept_errors on;
fastcgi_ignore_client_abort off;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 8 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;

И част конфига основного nginx.conf


http {

upstream backend {
server unix:/tmp/php5-fpm.sock;
}
include /usr/local/etc/nginx/mime.types;
default_type application/octet-stream;
access_log off;
log_not_found off;
server_tokens off;
sendfile on;
server_names_hash_bucket_size 128;
client_max_body_size 200m;
client_body_buffer_size 1m;
keepalive_timeout 1;
port_in_redirect off;
gzip on;
gzip_http_version 1.1;
gzip_vary on;
gzip_comp_level 6;
gzip_min_length 0;
gzip_proxied any;
gzip_types text/plain text/css application/json application/x-javascript application/xml application/xml+rss text/javascript;
gzip_buffers 16 8k;
gzip_disable "MSIE [1-6].(?!.*SV1)";
include /usr/local/etc/nginx/Includes/*.conf;
}

Если импортирую базы до 3 мб, то все нормально импортируется.

Покупаю сайты с доходом sape и др. (http://goldsnich.com/sell/)
StAlKeR-xXl
На сайте с 01.07.2011
Offline
45
#1

скачайте http://sypex.net/ru/products/dumper/downloads/ и не мучайтесь.. импорт через phpmyadmin - это ЗЛО.. =)...

---------- Добавлено 22.04.2013 в 23:12 ----------

fastcgi_ignore_client_abort off;

вот это можно еще в on поставить.. и сделать рестарт nginx

не держите все [S]яйца[/S] сайты в одной [S]корзине[/S] поисковой системе....(c)
Goldsnich
На сайте с 17.07.2011
Offline
52
#2

Да, слышала о ней, но так и не воспользовалась.

Поставила fastcgi_ignore_client_abort off; пезагрузила nginx, попробовала импортировать -


502 Bad Gateway

Секунд 15 крутился и импорт и потом сдался.😡

StAlKeR-xXl
На сайте с 01.07.2011
Offline
45
#3
Goldsnich:
Секунд 15 крутился и импорт и потом сдался.

1) полный конфиг apache (без доменов.. с самого начала конфиг-файла и до начала доменных записей)

2) каков точный размер дампа базы?

3) конфиг php ? ограничение на макс. размер файла/запроса

4) конфиг mysql

и поверьте- быстрее будет скриптом, что я предложил выше =).. не получится- стучите в ЛС - помогу.. еще минут 30 буду в сети

Goldsnich
На сайте с 17.07.2011
Offline
52
#4

Апача нет, только nginx. Полный размер базы в zip = 3.5 мб (не в zip - 26.9 мб), есть еще две базы других сайтов, которые тоже не импортируются и там более 3 мб.

Хочется с этим разобраться, скрипт потом попробую. Уже поздно, думаю тут 10-ю минутами не обойдется.

php.ini - http://pastebin.com/zAsCcXV4

my.cnf - http://pastebin.com/9UtRRUzc

Оптимизайка
На сайте с 11.03.2012
Offline
396
#5

В файле /etc/php5/fpm/php.ini

установите

upload_max_filesize = 100M

post_max_size = 100M

(100М - это максимальный будет размер файла который вы можете залить)

и в файле /etc/nginx/nginx.conf в секции http пропишите

http {

...тутчтототам...

client_max_body_size 100m;

}

после чего не забудьте применить настройки:

service php5-fpm reload

service nginx reload

⭐ BotGuard (https://botguard.net) ⭐ — защита вашего сайта от вредоносных ботов, воровства контента, клонирования, спама и хакерских атак!
Goldsnich
На сайте с 17.07.2011
Offline
52
#6

Уже стояло по 200M, проверила все 3 параметра.

Базы импортировала с помощью sypex, как и советовал StAlKeR-xXl, все восстановилось без ошибок.

Но может все таки кто-то знает почему через phpmyadmin не получается большие базы импортировать ?

StAlKeR-xXl
На сайте с 01.07.2011
Offline
45
#7

нужно подкрутить параметр proxy timeout в nginx

не помню точно как называется при php-fpm (сам юзаю всегда nginx+apache)

K5
На сайте с 21.07.2010
Offline
209
#8
StAlKeR-xXl:
нужно подкрутить параметр proxy timeout в nginx
не помню точно как называется при php-fpm (сам юзаю всегда nginx+apache)

связка же через socket настроена, прокси не к месту...

---------- Добавлено 23.04.2013 в 18:07 ----------

ТС попробуйте увеличить

fastcgi_connect_timeout 600;

аська 45два48499два записки на работе (http://memoryhigh.ru) помогу с сайтом, удалю вирусы, настрою впс -> отзывы ТУТ (/ru/forum/836248) и ТАМ (http://www.maultalk.com/topic140187.html) !!!всегда проверяйте данные людей, которые сами пишут вам в аську или скайп!!!
O
На сайте с 04.04.2013
Offline
69
#9

keepalive_timeout что то маловато поставь 60

Electronn
На сайте с 01.02.2010
Offline
91
#10

proxy_read_timeout 600

proxy_connect_timeout 600

proxy_send_timeout 600

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий