LINUX.ORG.RU
ФорумAdmin

Сервер Nextcloud подвисает при воспроизведении видеороликов

 


0

1

Nextcloud иногда при запуске видеоролика через браузер зависает вся виртуальная машина, даже по ssh не подключится пока
неотвиснет 1-3 минуты. Через проводник webdav ролик просто не воспроизводится но и ошибки нет.

Дано: сервер nginx+apache (от просто проксирует на другой сервер с NC докером).
location / {
......
proxy_buffering off;
proxy_pass http://192.168.1.36:8081;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
.....
В момент подвисания в логах появляется ошибка:


2024/02/29 22:04:17 [error] 475671#475671: *55572 upstream timed out (110: Unknown error) while reading
response header from upstream, client: 192.168.1.1 !(роутер)!, server: мойсервер.ру, request:
«GET /index.php/apps/files/ HTTP/2.0», upstream: "http://192.168.1.36:8081/index.php/apps/files/",
host: «мойсервер.ру»



Как исправить?


Ответ на: комментарий от Anoxemian

И @firkax тоже касается.

У меня Nextcloud в контейнере (jail) за тремя(!) реверс-прокси через внутренний VPN, и ничего не тормозит (в пределах пропускной способности сети, разумеется). Если у вас кривые руки, это не значит что в ваших бедах виноват инструмент.

mord0d ★★★★★
()

Нарисуй схему сети полностью от php-fpm Nextcloud до клиента.
Мне нужно понять зачем в твоей схеме Apache.

Из очевидного — у тебя не указаны размеры буферов и таймауты, а они, ЕМНИП, по умолчанию у NGINX совсем смешные.

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

Я то тут при чём?

Если у вас кривые руки

У меня ни nextcloud ни чего-то похожего вообще нет и никогда не было.

Однако автор всё равно накрутил там лишнего и надо убрать. А потом можно и по сути проблемы поговорить, зачем ты торопишь?

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

У меня ни nextcloud ни чего-то похожего вообще нет и никогда не было.

И при этом ты с уверенность даёшь какие-то советы?

Однако автор всё равно накрутил там лишнего и надо убрать.

Ты абсолютно в этом уверен? Если ты ошибаешься в своих выводах (которые, кстати, ты ничем не подтвердил), то согласен носить аватарку с петухом?

А потом можно и по сути проблемы поговорить

Это не толксы.

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

то согласен носить аватарку с петухом?

Нет, не согласен я никакие аватарки ставить.

И при этом ты с уверенность даёшь какие-то советы?

Ну да, проблема то не в пхп-скрипте а в сборке из разного софта вокруг него.

Более того, судя по тому что он не понимает, как можно без виртуалки, у меня большое подозрение что дело закончится посыланием на винфак, и хотел плавно к этому привести.

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

У меня ни nextcloud ни чего-то похожего вообще нет и никогда не было.

Но мнение имеете.

Более того, судя по тому что он не понимает, как можно без виртуалки, у меня большое подозрение что дело закончится посыланием на винфак, и хотел плавно к этому привести.

Правильно он понимает. Нефига всякую непонятную пыхню в хостсистему нести. Более того не всегда это возможно.

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

Ну да, проблема то не в пхп-скрипте а в сборке из разного софта вокруг него.

Ещё раз спрошу: ты абсолютно в этом уверен? Я, имея некоторый опыт, склонен с тобой не согласиться. Но раз аргументов с твоей стороны нет, то и от меня их не ожидай.

не понимает, как можно без виртуалки

Виртуалка/контейнер это лучше, чем разворачивать потенциально дырявый софт на железе. Если ты не понимаешь зачем здесь виртуалка/контейнер, на винфак следует послать тебя. ☺

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

У меня Nextcloud в контейнере (jail) за тремя(!) реверс-прокси через внутренний VPN

Соболезную.

Когда ты знаешь, умеешь и можешь решать проблемы - можно софт как угодно ставить ради эксперимента (в пределах разумного, конечно)

ТС не знает, не умеет и не может. Может только вопросы на ЛОРе задавать.

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

Я абсолютно точно знаю зачем мне раскидывать узлы по контейнерам и виртуалкам, соединять их VPN и проксировать HTTP такими вот окольными путями. Если я так сделал — значит мне это нужно. И если ты считаешь что я строю свою инфраструктуру неправильно, таблетки пить нужно тебе.

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

У меня Nextcloud в контейнере (jail) за тремя(!) реверс-прокси через внутренний VP

Соболезную.

И тебе сюда.

// А ещё ты N потерял. ☺

Когда ты знаешь, умеешь и можешь решать проблемы - можно софт как угодно ставить

Ты думаешь, мне не пришлось гуглить и задавать вопросы? ☺

ради эксперимента (в пределах разумного, конечно)

Это боевая реализация. Пусть и на личном железе в своей сети.

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

ты collabora ставил?

Нет.

Что-то он у меня не коннектится через второй реверс-прокси.

А у тебя на конце с Nextcloud клиент виден, или IP промежуточной прокси отсвечивает? Плюс надо смотреть чтобы (m)js пробрасывались корректно и работали корректно (в последнем тебе поможет отладочная консоль в браузере).

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

Не слушай этого клоуна, у него ума хватает только тупые вопросы задавать (я помню его новорегом, но с тех пор мало что поменялось) и делать умный вид в чужих тредах.

Вон, даже свою рожицу под комментарием оставил, подтверждает! ☺

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

Так это ты ворвался в тред со своей шизой

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

очень важную и востребованную информацию

Начни со своего пука в лужу без каких-либо аргументов.

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

Ты пришел с шизой, переплюнув самого ТСа, а он просто эталонный. Ну до этого, теперь венок твой, конечно. И да, мой совет релевантен проблеме, твой - тот самый бессмысленный пердеж.

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

у тебя не указаны размеры буферов и таймауты, а они, ЕМНИП, по умолчанию у NGINX совсем смешные.

От этого виртуалка не зависает на 1-3 минуты, nginx просто бросает строчку в логи.

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

Смотри: для локализации и диагностики любой проблемы, надо воспроизвести минимальный сетап, воспроизводящий эту самую проблему. Твоя шиза в стиле «а я обмазался этим трижды и мне норм» строго противоположна нахождению решения.

Anoxemian ★★★★★
()

upstream timed out

Очевидно, надо смотреть, что там происходит с самим NC, на логах прокси далеко не уедешь. Если, конечно, проблема не в том, что прокси слишком мало ждёт.

anonymous
()
Ответ на: комментарий от Dimez

От этого виртуалка не зависает на 1-3 минуты

А с чего бы виртуалке намертво зависать? Транскодинг видео? Тут буферы могут сыграть (я с этим столкнулся на медиасервере).

nginx просто бросает строчку в логи

Если он в другом контейнере, то он там выплюнет только таймаут, всё.

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

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

Аргумент, если честно, не очень. У, например, (бывшего) сотрудника ПФР тоже есть очень веские для него причины, что его облучают 20 лет. Однако они за границей общепринятой нормы.

Переусложнённую инфру нормальный админ/девопс перетряхивает и упрощает, а не усложняет далее.

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

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

Попробуй угадай инфру ТСа сам, он умеет только задавать вопросы (232 темы, не считая удалённых)

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

а вот ws получает обрыв и на этом все

У тебя путь до ws проброшен на промежуточную проксю и с промежуточной на конечную?

Помимо этого через http_sub_module нужно подменить пути к ws во всех скриптах, чтобы они соответствовали реальному (опять же, смотри консоль).

Также для ws обязательны следующие хедеры (оно должно быть на всех проксях):

proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header X-Real-IP $remote_addr;
mord0d ★★★★★
()
Ответ на: комментарий от Dimez

Переусложнённую инфру нормальный админ/девопс перетряхивает и упрощает, а не усложняет далее.

Инфра ровно такая, какая она должна быть. Её не надо ни упрощать, ни усложнять.

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

Инфра ровно такая, какая она должна быть. Её не надо ни упрощать, ни усложнять.

Ясно :-) Аргументация отлично вписывается в мой коммент выше.

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

У меня внешняя прокся снаружи анально огорожена фаерволом, имеет доступ до внутренней прокси для collabora. Nextcloud и остальное вывешено через субдиректории на внешней проксе. Nextcloud и пара других приложений в том числе и с ws отлично перекинулись на внешний прокси, а вот коллабора никак не хочет.

У тебя путь до ws проброшен на промежуточную проксю и с промежуточной на конечную?

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

Помимо этого через http_sub_module нужно подменить пути к ws во всех скриптах

У меня апач (сейчас фиркакс возбудиться)) и сделано через RewriteRule на обеих проксях, с соответствующими изменениями в путях.

Также для ws обязательны следующие хедеры

Тоже сделал через соответствующие модули апача. Иначе ws не работает.

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

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

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

Собственно, у меня так же.

Nextcloud и остальное вывешено через субдиректории на внешней проксе.

То есть он у тебя не напрямую в сабдиру настроен, а rewrite на промежуточной? Как это вообще работает?

У меня апач

На этом наши полномочия как бы всё, кончились. ☺

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

Ну я ws (от другой виртуалки про вообще другое, но это не суть) смог починить только с помощью внимательного вчитывания в консоль. В моём случае все обращения к ws шло из js-скриптов, в которых захардкожен путь к ws, который не соответствует реальному.

mord0d ★★★★★
()