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: «мойсервер.ру»



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


Ответ на: комментарий от mord0d
Идёт mord0d по лесу, вдруг видит — избушка на курьих ножках, а на крыше вывеска: "Изба–гадальня". Hу mord0d думает дай, зайду, погадаю.
Заходит, а в избушке темно, хоть глаз выколи, вдруг из темноты голос:
— Чего пришёл, через три (!) реверс-прокси и внутренний vpn?
— Да вот, эта.. погадать хочу!
— Hу возьми справа от тебя ковш, зачерпни из бочки впереди и выпей.
mord0d отхлебнул и кричит: это же говно!
Голос: угадал, дальше гадать будем?
Anoxemian ★★★★★
()
Ответ на: комментарий от mord0d

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

Не, там адреса типа hostname1/collabora, hostname2/collabora, hostname2:9980/collabora, а реврайты настроены по типу hostname2/collabora/(.*)/ws

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

там адреса типа hostname1/collabora, hostname2/collabora, hostname2:9980/collabora

Эти хосты клиенту из внешки недоступны, и js стучится вникуда. Их надо подменять чтобы вместо этих виртуальных хостов, которые некому резольвить, был IP/DNS внешнего хоста.

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

Так и делается, за этим настроено реверсивная прокся. Все подменяется на hostname1 который доступен с внешки. Если бы js стучались вникуда, то некстклауд бы не работал, а так неработает только коллабора.

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

Если бы js стучались вникуда, то некстклауд бы не работал, а так неработает только коллабора.

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

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

только предположение

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

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

Т.е. такие же настройки работают на одном прокси и не работают на внешнем.

У тебя промежуточная прокся находится в той же сети, что и Nextcloud/Collabora? Если да, то с внешки оно не может достучаться до хоста/IP по причине невозможности резольвинга RFC-1918 для клиента. Причём для скриптов твои rewrite работать не будут — у них пути до ws захардкожены, и может оказаться так, что они захардкожены вместе с хостом, а не только путь от корня сайта.

Но без логов мы тут воду в ступе толчём. ☺

mord0d ★★★★★
()