For the complete documentation index, see llms.txt. This page is also available as Markdown.

Настройка Nginx

На данном этапе необходимо настроить Nginx для корректной работы Frontend и Backend частей iEXExchanger.

Nginx отвечает за:

  • обработку запросов на основном домене;

  • работу Angular SSR;

  • передачу API-запросов в Backend через /backend-api;

  • отдачу статических файлов Backend;

  • отдачу пользовательских файлов /ng-custom;

  • отдачу файлов подтверждения сайта;

  • поддержку WebSocket/Reverb.

Эта инструкция предназначена для установки iEXExchanger на FastPanel, когда Frontend и Backend находятся на одном сервере.

Перед началом

Перед выполнением настройки убедитесь, что:

  • основной домен ваш_домен создан в FastPanel;

  • технический поддомен app.ваш_домен создан в FastPanel;

  • SSL-сертификаты настроены для обоих доменов;

  • Frontend загружен и настроен;

  • Backend загружен и настроен;

  • Backend работает через PHP-FPM;

  • рабочая директория Backend указана как public;

  • Frontend запускается через PM2;

  • Angular SSR работает на порту 4000;

  • Laravel Reverb работает на порту 8080.

  • у вас есть доступ к FastPanel.

Что необходимо заменить

Перед добавлением конфигурации замените шаблонные значения на реальные данные проекта.

Значение
Что указать

ваш_домен

основной домен сайта

app.ваш_домен

технический поддомен Backend

имя_пользователя_frontend

пользователь основного домена в FastPanel

имя_пользователя_backend

пользователь Backend-домена в FastPanel

Пример:

Файлы сайта в FastPanel

Настройка Nginx для Backend

Backend работает на техническом поддомене: app.ваш_домен

На стороне Backend оставьте стандартную Laravel-конфигурацию FastPanel и добавьте только блок для WebSocket/Reverb.

В FastPanel откройте: «Сайты» — «app.ваш_домен» — «Ручная настройка» — «Frontend»

1

Поиск стандартного PHP-блока

В конфигурации Backend найдите блок:

В реальной конфигурации FastPanel домен в сокете будет вашим, например:

2

Добавление WebSocket/Reverb

Сразу после PHP-блока добавьте:

После добавления блока нажмите кнопку «Сохранить».

3

Что делает настройка Backend

Данная настройка проксирует WebSocket-соединения к Laravel Reverb.

Она нужна для работы:

  • realtime-уведомлений;

  • онлайн-статусов;

  • динамических событий;

  • обновлений в административной панели;

  • функций, использующих WebSocket.


Настройка Nginx для Frontend

Frontend работает на основном домене: ваш_домен

В FastPanel откройте: «Сайты» — «ваш_домен» — «Ручная настройка» — «Frontend»

Перед изменениями сохраните копию текущей конфигурации.

1

Блоки вне server

В самый верх конфигурации, до блока server, добавьте:

Пример socket Backend:

2

Настройка Gzip

Внутри стандартной конфигурации найдите строку:

Замените её на:

Это улучшит сжатие статических файлов и уменьшит объём передаваемых данных.

3

Настройки внутри server

Внутри блока server найдите строку:

Сразу после неё добавьте:

Пример:

Файлы сайта в FastPanel

Не добавляйте глобально:

Если добавить его глобально в Nginx, статические файлы JS и CSS могут кешироваться хуже.

Стоит ли увеличиватьclient_max_body_size?

По умолчанию рекомендуется использовать:

Этого достаточно для большинства сценариев работы iEXExchanger, включая:

  • загрузку документов KYC;

  • загрузку фотографий и изображений;

  • загрузку файлов лицензии;

  • импорт и экспорт данных;

  • другие стандартные операции системы.

Увеличивать значение необходимо только в том случае, если пользователи или администраторы будут загружать файлы размером более 64 МБ.

Например:

или

Не рекомендуется устанавливать слишком большое значение без необходимости, так как это позволяет принимать более крупные HTTP-запросы, что может привести к повышенному потреблению ресурсов сервера и увеличить потенциальную поверхность для атак.

4

Удаление стандартных FastPanel location-блоков

В конфигурации основного домена удалите стандартные блоки:

Если в конфигурации есть старые блоки /apis, их также необходимо удалить:

В новой конфигурации используется путь: /backend-api

Добавление новой конфигурации Frontend

Внутри блока server добавьте следующие location-блоки.

1

Файлы подтверждения сайта

Файлы подтверждения должны находиться в Backend:

Открываются они с основного домена:

folder-treeФайлы подтверждений
2

Статические Frontend-файлы

3

Пользовательские файлы ng-custom

Пример проверки:

Пользовательские вставки HTML, CSS и JavaScript
4

Backend API

Правильный формат API-запросов с основного домена:

Пример:

5

Статические файлы Backend

Пример файла экспорта:

6

WebSocket/Reverb

7

Angular SSR

После добавления конфигурации нажмите «Сохранить».

Важная информация о языках

Что не нужно добавлять

Не добавляйте:

Не добавляйте:

Не добавляйте глобально:

Не добавляйте старый путь:

Не добавляйте отдельную конфигурацию для /api/v3/, если публичный API не используется.

Проверка после сохранения

Проверьте конфигурацию:

Если ошибок нет, перезагрузите Nginx:

Проверьте сайт:

Проверьте Backend API:

Проверьте файлы:

Частые ошибки

Сайт показывает 502 Bad Gateway

Проверьте:

  • запущен ли Frontend через PM2;

  • слушает ли Angular SSR порт 4000;

  • правильно ли указан iex_frontend_ssr.

/backend-api/не работает

Проверьте:

  • правильно ли указан PHP-FPM socket в iex_backend_php;

  • существует ли socket-файл;

  • запущен ли PHP-FPM;

  • правильно ли указан $backend_public_path;

  • есть ли файл index.php в Backend public.

Не открываются файлы Backend

Проверьте:

  • $backend_public_path;

  • наличие файлов в public/storage, public/images, public/static;

  • права доступа к файлам.

Не работает WebSocket/Reverb

Проверьте:

  • запущен ли Reverb;

  • слушает ли Reverb порт 8080;

  • добавлен ли map $http_upgrade $connection_upgrade;

  • есть ли блоки /app/ и /apps/.


Полная готовая конфигурация Nginx

Ниже приведён пример полной конфигурации Nginx для основного домена Frontend.

Перед сохранением обязательно замените:

  • ваш_домен;

  • www.ваш_домен;

  • app.ваш_домен;

  • имя_пользователя_frontend;

  • имя_пользователя_backend;

  • IP_СЕРВЕРА;

  • путь к SSL-сертификату;

  • путь к SSL-ключу;

  • PHP-FPM socket Backend.

Не добавляйте BACKEND_ORIGIN_IP, upstream iex_backend_https, языковые map-блоки и старый путь /apis. В этой версии Backend API работает через PHP-FPM socket и путь /backend-api/.

Коротко

После настройки:

  • Frontend работает через Angular SSR на порту 4000;

  • Backend API доступен через /backend-api/;

  • Backend подключается через PHP-FPM socket;

  • статические файлы Backend открываются с основного домена;

  • /ng-custom/ отдаёт пользовательские Frontend-файлы;

  • файлы подтверждения открываются из корня сайта;

  • WebSocket/Reverb работает через /app/ и /apps/;

  • языки обрабатывает Angular SSR, а не Nginx.

Последнее обновление

Это было полезно?