Как развернуть NocoBase быстрее
Многие при развёртывании NocoBase замечают, что скорость работы не такая, как хотелось бы. Обычно это связано с сетевыми условиями, конфигурацией сервера или архитектурой развёртывания. Прежде чем переходить к советам по оптимизации, ниже приведены ориентиры скорости при стандартной конфигурации, чтобы Вы понимали, чего ожидать.
Ориентиры скорости загрузки NocoBase
Вот результаты замеров в demo-окружении NocoBase:
- ввод адреса и первое открытие приложения занимает около 2 секунд;
- переключение между страницами внутри приложения — 50–300 мс.
Ниже мы делимся набором простых, но эффективных приёмов оптимизации развёртывания. Они не требуют изменения кода — только настройки развёртывания, и заметно ускоряют доступ.
I. Оптимизация сети и инфраструктуры
1. Версия HTTP: переходите на HTTP/2
【Предпосылки】
- Нужен HTTPS: важный момент! Современные браузеры поддерживают HTTP/2 практически только по HTTPS, поэтому сначала настройте SSL-сертификат.
- Серверное ПО: нужен Web-сервер с поддержкой HTTP/2, например Nginx 1.9.5+ или Apache 2.4.17+.
- Версия TLS: рекомендуется TLS 1.2 или выше (оптимально TLS 1.3); устаревшие SSL-версии HTTP/2 не поддерживают.
【Заметка】
В классическом HTTP/1.1 при работе с несколькими запросами есть ограничение — обычно одновременно обрабатываются лишь 6–8 соединений, что напоминает очередь и легко вызывает задержки.

В HTTP/2 используется «мультиплексирование» — несколько запросов идут параллельно, ресурсы загружаются заметно быстрее. А последний HTTP/3 особенно хорош на нестабильных сетях.

【Советы】
- Убедитесь, что на Вашем веб-сервере включён HTTP/2 — большинство современных серверов (Nginx, Caddy) настраиваются легко.
- В Nginx достаточно добавить параметр
http2после listen:
【Проверка】
В DevTools браузера откройте вкладку «Сеть», правым кликом включите столбец «Протокол» — увидите версию протокола соединения:

По нашим замерам, общая скорость возрастает примерно на 10%, а в системах с большим количеством блоков и ресурсов прирост ещё заметнее.
2. Пропускная способность: больше — лучше, по трафику — гибче
【Заметка】
Как широкая дорога быстрее узкой, так и пропускная способность определяет эффективность передачи. NocoBase при первом открытии загружает много фронтенд-ресурсов, и недостаток bandwidth превращается в узкое горлышко.
【Советы】
- Выберите достаточный bandwidth (для большой аудитории — от 50 Мбит/с) — на этом ресурсе экономить не стоит.
- Рекомендуем оплачивать «по трафику»: многие облачные провайдеры предлагают такой режим — пиково Вы получаете большую пропускную способность, а в обычное время затраты остаются под контролем.
3. Сетевые задержки и расположение сервера: ближе — быстрее
【Заметка】
Задержка — это время ожидания при передаче данных. Даже при достаточной полосе, если сервер далеко от пользователя (например, пользователь в Китае, а сервер в США), каждый запрос тормозится из-за расстояния.
【Советы】
- Размещайте NocoBase ближе к основной аудитории.
- Если пользователи распределены по миру, рассмотрите глобальные сервисы ускорения (например, Alibaba Cloud Global Accelerator или AWS Global Accelerator), оптимизирующие маршрутизацию и снижающие задержку.
【Проверка】
Команда ping поможет измерить задержки до серверов в разных регионах.
Этот фактор даёт самый заметный эффект — в зависимости от региона скорость возрастает в 1–3 раза.
12 часовых поясов, 13 с екунд:

2 часовых пояса, 8 секунд:

Текущий регион, около 3 секунд:

II. Оптимизация архитектуры развёртывания
4. Развёртывание сервера и тип прокси: выбирайте подходящую архитектуру
【Предпосылки】
- Права на сервере: нужны root или sudo для настройки Nginx и подобного.
- Базовые навыки: понадобятся базовые знания серверной настройки — но не волнуйтесь, мы дадим примеры.
- Открытые порты: убедитесь, что в файрволе разрешены порты 80 (HTTP) и 443 (HTTPS).
【Заметка】
Когда пользователь обращается к NocoBase, запрос напрямую попадает на Ваш сервер. Правильный способ развёртывания позволяет серверу обрабатывать запросы эффективнее и отвечать быстрее.
【Варианты и рекомендации】
Запуск NocoBase без обратного прокси для статики (не рекомендуется):
- Минусы: просто, но при высокой параллельности и обслуживании статических файлов производительность невысока, подходит только для разработки и тестирования.
- Рекомендация: избегайте этого подхода.
Без обратного прокси главная страница загружается около 6,1 секунды:

Использование обратного прокси Nginx / Caddy и т. п. (настоятельно рекомендуется):
- Плюсы: обратный прокси хорошо обслуживает много соединений, отдаёт статические файлы, балансирует нагрузку, легко настраивается на HTTP/2.
- Рекомендация: в production после развёртывания (исходники / create-nocobase-app / Docker-образ) поставьте перед приложением Nginx или Caddy.
С Nginx-прокси главная страница загружается за 3–4 секунды:


Кластерное развёртывание и балансировщик нагрузки (для высоких нагрузок и HA):
- Плюсы: несколько экземпляров обрабатывают запросы, заметно повышая стабильность и пропускную способность.
- Подробнее см. Кластерный режим
5. Ускорение статики через CDN
【Предпосылки】
- Домен: должен быть зарегистрированный домен с возможностью управлять DNS.
- SSL-сертификат: большинство CDN требует SSL (бесплатный Let's Encrypt подойдёт).
- Выбор сервиса: подбирайте CDN под регион пользователей (для материкового Китая нужен CDN с ICP-регистрацией).
【Заметка】
CDN кэширует Ваши статические ресурсы по узлам по всему миру, и пользователи получают их с ближайшего узла — как воду из ближайшего источника. Это сильно снижает задержку.
Кроме того, главное преимущество CDN — значительная разгрузка сервера приложений и его канала. Когда NocoBase одновременно использует много пользователей, без CDN все запросы статики (JavaScript, CSS, картинки и т. д.) пойдут к Вашему серверу, перегружая канал и снижая производительность. CDN перекладывает эти запросы на себя — Ваш сервер концентрируется на бизнес-логике, и пользователям становится комфортнее.

【Советы】 - Настройте сервер так, чтобы запросы статики шли через CDN; - Выбирайте CDN под регион пользователей:
- Глобально: Cloudflare, Akamai, AWS CloudFront;
- Материковый Китай: Alibaba Cloud CDN, Tencent Cloud CDN, Baidu Cloud Acceleration. Пример конфигурации:
Для небольших проектов даже бесплатный план Cloudflare даёт хорошую скорость:
- Зарегистрируйтесь в Cloudflare и добавьте домен.
- В DNS укажите NS Cloudflare.
- В панели задайте подходящий уровень кэширования.
Особое замечание: даже если Ваши пользователи находятся в одном регионе, CDN всё равно настоятельно рекомендуется — он эффективно разгружает сервер и повышает стабильность системы, особенно при высокой посещаемости.
III. Оптимизация статических ресурсов
6. Сжатие на сервере и кэширование
【Предпосылки】
- Ресурсы CPU: сжатие нагружает процессор, нужны достаточные мощности.
- Поддержка модулей Nginx: Gzip обычно встроен; для Brotli может потребоваться доустановить модуль.
- Права на конфигурацию: нужно изменять конфиг сервера.
【Заметка】
Включение сжатия и продуманного кэширования заметно сокращает объём передаваемых данных и кол ичество повторных запросов — это словно «диета» для ресурсов: загрузка летает.

【Советы】
- Самое простое: бесплатный CDN Cloudflare автоматически включает Gzip-сжатие.
- Включите Gzip или Brotli; в Nginx это выглядит так:
- Установите подходящие заголовки кэширования для статики, чтобы снизить повторную загрузку:
7. Использование SSL/TLS и оптимизация производительности
【Предпосылки】
- SSL-сертификат: нужен действующий сертификат (можно бесплатный Let's Encrypt).
- Права на конфигурацию: нужны права на настройку SSL.
- DNS: для OCSP Stapling настройте надёжный DNS-резолвер.
【Заметка】
Безопасность — на первом месте, но при неправильной настройке HTTPS может добавлять задержки. Несколько советов помогут сохранить безопасность и производительность.
【Советы】
- Используйте TLS 1.3 — самая быстрая версия. В Nginx:
- Включите OCSP Stapling, чтобы ускорить проверку сертификата:
- Используйте session reuse, чтобы не повторять рукопожатие:
【Эффект в кросс-региональных сценариях】 Уточнение: ниже приведены результаты в кросс-региональном сценарии (12 часовых поясов), это принципиально отличается от локального доступа (около 3 секунд). Сетевая задержка из-за географии неизбежна, но оптимизации заметно ускоряют загрузку:
После Http2 + кеширование CDN + Gzip + Brotli:
До (трансграничный доступ), 13 секунд:
После (трансграничный доступ), 8 секунд:

Этот пример показывает: даже при большом расстоянии разумная оптимизация сокращает время загрузки примерно на 40%, заметно улучшая UX.
IV. Мониторинг и диагностика
8. Мониторинг производительности и базовый анализ
【Предпосылки】
- Доступность: для большинства онлайн-инструментов сайт должен быть публично доступен.
- Базовые навыки: нужно понимать ключевые метрики производи тельности — мы расскажем о каждой.
【Заметка】
Если непонятно, где узкое место, точно оптимизировать нельзя. Используйте бесплатные инструменты для мониторинга, чтобы локализовать проблему.
【Советы】
Бесплатные инструменты для проверки производительности:
Ключевые метрики:
- Время загрузки страницы
- Время ответа сервера
- Время DNS-резолва
- Время SSL-рукопожатия
Как реагировать на типичные проблемы:
- Медленный DNS? Поменяйте DNS-провайдера или включите DNS prefetch.
- Медленное SSL-рукопожатие? Оптимизируйте SSL-конфиг и включите session reuse.
- Медленный ответ сервера? Проверьте ресурсы сервера, при необходимости — апгрейд.
- Медленно грузится статика? Подключите CDN и пересмотрите политику кэширования.
Чек-лист быстрой оптимизации развёртывания
Этот чек-лист поможет быстро проверить и оптимизировать развёртывание NocoBase:
-
Проверка HTTP
- HTTPS включён (предпосылка для HTTP/2)
- HTTP/2 включён
- При возможности — поддержка HTTP/3
-
Bandwidth
- Достаточная полоса (минимум 10 Мбит/с, лучше 50+)
- Можно использовать оплату по трафику вместо фиксированной полосы
-
Расположение сервера
- Сервер близко к пользователям
- Для глобальной аудитории — глобальное ускорение
-
Архитектура развёртывания
- Nginx/Caddy как обратный прокси, разделение статики и API
- При необходимости — несколько экземпляров и балансировщик
-
CDN
- Раздача статики через CDN
- Корректная политика кэширования
- CDN поддерживает HTTP/2 или HTTP/3
-
Сжатие и кэш
- Включён Gzip или Brotli
- Подходящие заголовки браузерного кэша
-
Оптимизация SSL/TLS
- TLS 1.3 для ускоренного рукопожатия
- OCSP Stapling
- SSL session reuse
-
Мониторинг производительности
- Регулярная оценка с помощью инструментов
- Контроль ключевых метрик (загрузка, ответ, разрешение, рукопожатие)
- Корректировка под выявленные проблемы
FAQ
【Вопрос】Сервер за рубежом, китайские пользователи жалуются на скорость. Что делать?
【Ответ】Лучшее решение — поднять сервер в Китае. Если переехать невозможно:
- Используйте локальный CDN для статики.
- Подключите глобальное ускорение.
- Включите все возможные сжатия и кэширования.
【Вопрос】Почему первое открытие NocoBase медленное, а потом быстро?
【Ответ】Это нормально: при первом открытии скачивается большой объём ресурсов. На нашем официальном demo первое открытие обычно около 3 секунд.
Дальше повторный заход в приложение — 1–2 секунды, переключение страниц — 50–300 мс, задержки минимальные.

Если время загрузки слишком велико, остаётся пространство для оптимизации:
- Убедитесь, что включён HTTP/2.
- Подключите CDN.
- Включите Gzip/Brotli.
- Проверьте, хватает ли пропускной способности сервера.
【Вопрос】Я на shared-хостинге без возможности менять Nginx. Что делать?
【Ответ】В этом случае возможностей меньше, но всё же:
- Подключите CDN (например, Cloudflare).
- Подкрутите параметры самого приложения.
- Если можно — переходите на VPS с расширенной конфигурацией.
С помощ ью этих простых, но действенных стратегий Вы заметно ускорите доступ к NocoBase и сделаете работу пользователей плавнее. Большинство шагов настраиваются за пару часов и не требуют изменения кода.

