LINUX.ORG.RU
ФорумAdmin

nginx + php-fpm, проблемы с задивкой файлов

 , ,


0

1

VPS, debian 7, nginx/1.2.1 (пакет nginx-extras из реп дебиана), PHP 5.4.4-14+deb7u12 (php5-fpm из реп дебиана).

Мелкие файлы (условно до 100 кб) заливаются, но медленно (где-то по 30 - 60 секунд), «большие» (~50 мб) тупят мунуту другую, потом браузер выдаёт что соединение сброшено. Может есть какие-то тонкости в настройке nginx + php-fpm которые я не учёл? У nginx есть модуль upload, сейчас экспериментирую с ним, вроде стало лучше.

Диагностику осложняют проблемы с сетью на пути от моего провайдера до VPS. Ко мне трафик идёт с нормальной скоростью (6 - 7 Мб/с), от меня до VPS упирается в 100 кб/с. С других московских хостов VPS качает нормально, другие хосты от меня качают нормально. Видимо какой-то точечный косяк где-то в сети ростелекома (экскаваторы в последнее время на стыках Россия - Европа не копались? :).

Сейчас воспроизведу конфигурацию на VPS в другом датацентре (с нам связь хорошая).

Заливку проверяю этим скриптом:
/usr/share/nginx/www/upload.php
http://pastebin.com/btqWaXY9

Конфиги
/etc/nginx/nginx.conf
http://pastebin.com/rEGy2HU2

/etc/nginx/sites-enabled/default
http://pastebin.com/wHn128yA

/etc/php5/fpm/php.ini
http://pastebin.com/wF7PA3uj

/etc/php5/fpm/pool.d/www.conf
http://pastebin.com/0udZcw1L

★★★★★

Последнее исправление: MrClon (всего исправлений: 1)

Мне кажется это сеть, трудно так накосячить с конфигурацией. Можно проверить сеть или развернуть такой же php-fpm в виртуалке и проверить его.

disarmer ★★★
()

А в erro.log ничего не падает при неудачной загрузке? Так-же стоит проверить, нет ли проблем на маршруте между Вашим ПК и сервером. Судя по тому, что Вы пишете - проблемы могут возникать из-за проблем с сетью в ДЦ, или на маршруте между Вами и ДЦ. При этом пакеты от Вас к серверу и от сервера к Вам могут идти разными путями. Стоит проверить корректность работы загрузки с другой VPS-ки, а так-же проверить нет ли потери пакетов между Вами и ДЦ при помощи mtr(запускаете до проблемного хоста, и наблюдаете минут 10-15). Думаю, это сеть, потому что конфиги у Вас выглядят вполне нормально.

lucentcode ★★★★★
()
Последнее исправление: lucentcode (всего исправлений: 1)
Ответ на: комментарий от disarmer

У меня две VPS от одного хостера, но в разных ДЦ. Сейчас разворачиваю ту-же конфигурацию на второй vps-ке (с ней связь нормальная).
В на локальном виртуалбоке разворачивал примерно такую-же конфигурацию, там вроде нормально заливалось (что свидетельствует в пользу гипотезы о сети).
На второй виртуалке тоже тестировал, тоже были косяки. но тогда не переносил конфигурацию, а набросал что-то «по мотивам».

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

MrClon ★★★★★
() автор топика
Ответ на: комментарий от lucentcode

err.log nginx-а и пыхи пустые. Сеть — первый подозреваемый, так-как косяки с ней точно есть. Но я подозреваю что помимо них могут быть и какие-то другие косяки, потому и решил обратиться к коллективному разуму ЛОРа.

MrClon ★★★★★
() автор топика
Ответ на: комментарий от lucentcode

Воспроизвёл конфигурацию на второй VPS. Тот-же тупняк.

Ещё раз проверил скорость скачивания с моего компа (vps-кой по http качал со своего домашнего web-сервера): первая vps-ка качает медленно (305K/s), вторая — быстро.

mtr до первой vps:
http://pastebin.com/5XU0DBj0

до второй:
http://pastebin.com/pMbTAby7

debug лог nginx-а при заливке файла в 119,5 КБ
http://pastebin.com/dAuX85qb

MrClon ★★★★★
() автор топика
Ответ на: комментарий от MrClon

При-этом mtr показывал суммарные потери до 90% то для первой vps-ки до для второй, но на всех хопах потерь было 0%.
ping -i 0.2 $IP потерь не показывал.

MrClon ★★★★★
() автор топика

Пробую заливать curl-ом (почему сразу до этого не додумался?).
[code]curl -v --form «file=@./rand7.bin» http://185.61.148.167/upload.php[/code]

С одной vps на другую заливается нормально в обще стороны. Правда в процессе curl дичайше гадит в консоль строкой
[code] * additional stuff not fine transfer.c:1037: 0 0[/code]

С моего компа ни на одну не заливается, curl замирает на:
[code]$ curl -v --form «file=@./rand4.bin» http://185.61.148.167/upload.php
* About to connect() to 185.61.148.167 port 80 (#0)
* Trying 185.61.148.167... connected
* Connected to 185.61.148.167 (185.61.148.167) port 80 (#0)

POST /upload.php HTTP/1.1
User-Agent: curl/7.19.7 (i486-pc-linux-gnu) libcurl/7.19.7 OpenSSL/0.9.8k zlib/1.2.3.3 libidn/1.15
Host: 185.61.148.167
Accept: */*
Content-Length: 51401
Expect: 100-continue
Content-Type: multipart/form-data; boundary=----------------------------fb4d4acaf6c8

< HTTP/1.1 100 Continue
[/code]

MrClon ★★★★★
() автор топика
Ответ на: комментарий от MrClon

нет такого файлика

curl -v --form «file=@./rand4.bin» http://185.61.148.167/upload.php
* Hostname was NOT found in DNS cache
*   Trying 185.61.148.167...
* Connected to 185.61.148.167 (185.61.148.167) port 80 (#0)
* couldn't open file "./rand4.bin»"
* Closing connection 0
curl: (26) couldn't open file "./rand4.bin»"

trofk ★★★
()
Ответ на: комментарий от trofk

Логично. Подсунь любой файл метров на 50.
В моём случае это кусок /dev/urandom
dd if=/dev/urandom of=./rand4.bin count=190000

MrClon ★★★★★
() автор топика
Ответ на: комментарий от MrClon

ага, ступил.

curl -v --form «file=PsychonautsData2.pkg» http://185.61.148.167/upload.php
* Hostname was NOT found in DNS cache
*   Trying 185.61.148.167...
* Connected to 185.61.148.167 (185.61.148.167) port 80 (#0)
> POST /upload.php HTTP/1.1
> User-Agent: curl/7.35.0
> Host: 185.61.148.167
> Accept: */*
> Content-Length: 163
> Expect: 100-continue
> Content-Type: multipart/form-data; boundary=------------------------5a57a7c6fe16e7b4
> 
< HTTP/1.1 100 Continue
< HTTP/1.1 200 OK
* Server nginx/1.2.1 is not blacklisted
< Server: nginx/1.2.1
< Date: Sat, 16 Aug 2014 15:55:47 GMT
< Content-Type: text/html
< Transfer-Encoding: chunked
< Connection: keep-alive
< X-Powered-By: PHP/5.4.4-14+deb7u12
< 
* Connection #0 to host 185.61.148.167 left intact
Upload: <br>Type: <br>Size: 0 kB<br>Stored in: 
trofk ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.