Большой файл Javascript в папке assets

Один из файлов /assets/application-7c87db9088046beb643be94b61428105469e084e8d02f141c57adfaf14168c63.js имеет размер почти 3,1 МБ и вызывает множество предупреждений в error.log для обратного прокси-сервера Nginx.

an upstream response is buffered to a temporary file /var/lib/nginx/proxy/2/77/0012036772 while reading upstream, client: XXXXXX

  • Не знает ли кто-нибудь, для чего используется такой большой JavaScript-файл?
  • Существует ли способ уменьшить размер этого файла? Одним из способов снизить количество предупреждений в Nginx будет увеличение размера буфера до 3,1 МБ, но не слишком ли это много по сравнению с конфигурацией Nginx по умолчанию?

Когда вы впервые загружаете сайт Discourse, полное JavaScript-приложение отправляется в браузер (после этого оно кэшируется, поэтому последующие загрузки страниц происходят гораздо быстрее). Именно это представляет собой файл размером 3 МБ.

Также стоит помнить, что при следовании официальному руководству по установке вы получаете предварительно настроенный обратный прокси-сервер nginx, который обслуживает этот файл с использованием сжатия brotli, уменьшающего его размер до 400 КБ.

Спасибо, @Falco. Используются отдельные контейнеры для веб-части и данных, а также ручная настройка обратного прокси. Похоже, что руководство по адресу discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub предназначено для автономного контейнера.

Что касается предварительно настроенной конфигурации обратного прокси nginx, вы имеете в виду использование конфигурации из discourse/config/nginx.sample.conf at main · discourse/discourse · GitHub?

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

К сожалению, мы предоставляем файл конфигурации только при следовании официальному руководству по установке. Если вы отклонитесь от него, вам придется быть осторожным, чтобы не потерять все функции, которые мы поддерживаем, такие как brotli, HTTP/2, IPv6 и т. д.

@Falco, читая форум Discourse, можно понять, что использование отдельных контейнеров для веб-сервера и базы данных является предпочтительным или, возможно, рекомендуемым подходом. Было бы отлично, если бы существовало официальное руководство по ручной настройке nginx или автоматической установке для раздельных контейнеров.

Наш предпочтительный способ установки — тот, который мы документировали в нашем официальном руководстве по установке. Тем не менее, использование отдельного контейнера для веб-сервера и данных не влияет на предварительно настроенный nginx внутри веб-контейнера; он должен работать так же, без необходимости в дополнительном обратном прокси.

Ищете способы оптимизации при размещении нескольких форумов Discourse с использованием: Nginx proxy → отдельные контейнеры для веб-сервера и базы данных. В данном сценарии я предполагаю, что меры по повышению производительности, применяемые при официальной установке, необходимо выполнять вручную в настройках Nginx proxy.