Настройка 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
Пример:
Настройка Nginx для Backend
Backend работает на техническом поддомене: app.ваш_домен
На стороне Backend оставьте стандартную Laravel-конфигурацию FastPanel и добавьте только блок для WebSocket/Reverb.
В FastPanel откройте: «Сайты» — «app.ваш_домен» — «Ручная настройка» — «Frontend»
Настройка Nginx для Frontend
Frontend работает на основном домене: ваш_домен
В FastPanel откройте: «Сайты» — «ваш_домен» — «Ручная настройка» — «Frontend»
Перед изменениями сохраните копию текущей конфигурации.
Настройки внутри server
Внутри блока server найдите строку:
Сразу после неё добавьте:
Пример:
Не добавляйте глобально:
Если добавить его глобально в Nginx, статические файлы JS и CSS могут кешироваться хуже.
Стоит ли увеличиватьclient_max_body_size?
По умолчанию рекомендуется использовать:
Этого достаточно для большинства сценариев работы iEXExchanger, включая:
загрузку документов KYC;
загрузку фотографий и изображений;
загрузку файлов лицензии;
импорт и экспорт данных;
другие стандартные операции системы.
Увеличивать значение необходимо только в том случае, если пользователи или администраторы будут загружать файлы размером более 64 МБ.
Например:
или
Не рекомендуется устанавливать слишком большое значение без необходимости, так как это позволяет принимать более крупные HTTP-запросы, что может привести к повышенному потреблению ресурсов сервера и увеличить потенциальную поверхность для атак.
Добавление новой конфигурации Frontend
Внутри блока server добавьте следующие location-блоки.
Файлы подтверждения сайта
Файлы подтверждения должны находиться в Backend:
Открываются они с основного домена:
Важная информация о языках
В новой версии языки не настраиваются в Nginx.
Не нужно добавлять:
Также не нужно менять (ru|en) на другие языки.
Если на сайте используются языки:
они должны быть настроены во Frontend.
Nginx должен просто передавать запросы в Angular SSR:
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в Backendpublic.
Не открываются файлы 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.
Последнее обновление
Это было полезно?