Настройка Nginx
На этом этапе необходимо настроить Nginx для совместной работы Frontend и Backend частей iEXExchanger.
Nginx принимает входящие запросы и направляет их в нужный компонент системы:
публичные страницы — в Angular SSR;
API-запросы — в Laravel через PHP-FPM;
WebSocket-соединения — в Laravel Reverb;
изображения и загруженные файлы — в публичные каталоги Backend;
пользовательские Frontend-файлы — в каталог
/ng-custom;файлы подтверждения — в отдельный каталог Backend;
экспортируемые файлы — в каталог экспортов.
Инструкция предназначена для установки iEXExchanger через FastPanel, когда Frontend и Backend находятся на одном сервере.
Все домены, IP-адреса, имена пользователей, пути и сокеты в инструкции являются шаблонами. Перед сохранением конфигурации замените их реальными значениями проекта.
Перед началом
Перед настройкой убедитесь, что:
основной домен
ваш_доменсоздан в FastPanel;технический поддомен
app.ваш_доменсоздан в FastPanel;SSL-сертификаты установлены для обоих доменов;
Frontend загружен и настроен;
Backend загружен и настроен;
рабочей директорией Backend является каталог
public;Backend работает через PHP-FPM;
Angular SSR запускается через PM2;
Angular SSR слушает
127.0.0.1:4000;Laravel Reverb слушает
127.0.0.1:8080;у вас есть доступ к FastPanel и серверу по SSH.
Что необходимо заменить
ваш_домен
Основной домен Frontend
www.ваш_домен
Дополнительный Frontend-домен
app.ваш_домен
Технический домен Backend
IP_СЕРВЕРА
Публичный IP-адрес сервера
имя_пользователя_frontend
Системный пользователь Frontend
имя_пользователя_backend
Системный пользователь Backend
/var/run/app.ваш_домен.sock
Сокет PHP-FPM Backend
Пример:
Сохранение текущей конфигурации
Перед изменениями сохраните текущую конфигурацию обоих сайтов.
Для Backend откройте:
«Сайты» — выберите app.ваш_домен — «Ручная настройка» — «Frontend»
Для Frontend откройте:
«Сайты» — выберите ваш_домен — «Ручная настройка» — «Frontend»
Скопируйте обе конфигурации в отдельные файлы. Это позволит быстро вернуть предыдущую версию, если при редактировании будет допущена ошибка.
Настройка Nginx для Backend
Backend работает на техническом поддомене:
Стандартную Laravel-конфигурацию FastPanel заменять не нужно. На стороне Backend необходимо сохранить существующую обработку PHP и добавить маршруты Laravel Reverb.
Настройка Nginx для Frontend
Frontend работает на основном домене:
На стороне Frontend необходимо удалить стандартное проксирование FastPanel через Apache и настроить:
Angular SSR;
Backend API;
Laravel Reverb;
статические файлы Backend;
пользовательские файлы
/ng-custom;файлы подтверждения;
экспортируемые файлы;
кеширование;
HTTPS.
Удаление старых правил FastPanel
В конфигурации основного домена удалите стандартное проксирование через Apache:
Удалите старое правило статических файлов:
Удалите named location:
Если в конфигурации остался старый API-маршрут /apis, удалите:
В новой конфигурации используется:
Удалите старые языковые правила:
Удалите глобальный заголовок:
Языки должны обрабатываться Angular SSR, а не Nginx.
Настройка Laravel Reverb на Frontend
Если публичный сайт подключается к Reverb через основной домен, добавьте маршруты /app/ и /apps/.
Настройка статических файлов Angular
Статические файлы Angular передаются в SSR-процесс:
Nginx не переопределяет Cache-Control для Angular-файлов. Политику кеширования определяет SSR-сервер.
Настройка Angular SSR
Добавьте общий маршрут:
Для обычных SSR-запросов не нужны:
WebSocket работает только через /app/.
Поэтому для Angular используется:
Это позволяет Nginx повторно использовать соединения с SSR через keepalive.
Настройка языков
Языки не настраиваются в Nginx.
Не добавляйте:
Если на сайте используются языки:
они должны быть настроены во Frontend.
Nginx только передаёт запрос в Angular SSR:
Angular SSR самостоятельно определяет язык, маршрут и необходимые редиректы.
Cloudflare и HTTPS
Для перенаправления HTTP на HTTPS можно использовать:
Если FastPanel уже создала отдельный блок для порта 80, используйте отдельный редирект:
В этом случае в HTTPS-блоке не должно быть повторного:
Для Cloudflare используйте:
или предпочтительно:
Не используйте Cloudflare Flexible. Это приведёт к бесконечному циклу перенаправлений между Cloudflare и Nginx.
Что не нужно добавлять
Не добавляйте:
Не добавляйте:
Не используйте старый маршрут:
Не проксируйте Frontend через:
Не добавляйте языковые map-блоки.
Не добавляйте глобально:
Не используйте в proxy_pass:
Не добавляйте /api/v3/, если публичный API не используется.
Полная готовая конфигурация Nginx
Ниже приведён пример полной конфигурации Nginx для основного домена Frontend.
Перед сохранением обязательно замените:
ваш_домен;www.ваш_домен;app.ваш_домен;имя_пользователя_frontend;имя_пользователя_backend;IP_СЕРВЕРА;путь к SSL-сертификату;
путь к SSL-ключу;
PHP-FPM socket Backend.
Коротко
Настройка выполняется отдельно для двух сайтов.
На Backend-домене сохраняется стандартная Laravel-конфигурация FastPanel и добавляются маршруты Laravel Reverb:
На Frontend-домене настраиваются:
После настройки публичный сайт работает через Angular SSR на порту 4000, Laravel API подключается напрямую через PHP-FPM, а события реального времени передаются в Reverb на порту 8080.
языки обрабатывает Angular SSR, а не Nginx.
Последнее обновление
Это было полезно?