Конфигурация Nginx и SSL
Настройка reverse proxy, WebSocket и сертификатов Nginx для iEXExchanger
Фрагменты ниже показывают назначение обязательных директив, но не заменяют конфигурацию текущей поставки. На чистой установке server-блоки, обработку PHP и сертификаты подготавливает установщик iEXExchanger. Не создавайте параллельный vhost и не переносите шаблон целиком без сверки активной конфигурации.
Резервная копия и проверка
Определите точный файл <CONF_FILE> из активного nginx -T, затем создайте копию:
sudo cp --preserve=all <CONF_FILE> <CONF_FILE>.before-change
sudo nginx -t<CONF_FILE> — один проверенный конфигурационный файл, а не каталог и не маска. Если исходный тест не проходит, не вносите новое изменение: сначала сохраните ошибку и восстановите корректное исходное состояние.
Клиентский SSR
Типовое правило передаёт клиентские страницы локальному процессу:
location / {
proxy_pass http://127.0.0.1:<SSR_PORT>;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}<SSR_PORT> должен совпадать с фактическим локальным портом клиентского SSR. Убедитесь, что процесс слушает 127.0.0.1, а не публичный интерфейс.
API и статические файлы
Для подтверждённых API-путей задайте отдельные location с ожидаемым изменением или сохранением префикса. Поведение proxy_pass зависит от наличия URI в директиве, поэтому проверьте конечный путь на backend, а не только ответ 200. Правила описаны в официальной документации proxy_pass.
Статический alias должен указывать только на разрешённый публичный каталог. Добавляйте завершающий / согласованно в location и alias, запрещайте листинг и не направляйте запрос в корень серверного проекта.
Канал реального времени
Для подтверждённого WebSocket-пути нужны явные заголовки переключения протокола:
<REALTIME_PATH> и <REALTIME_PORT> берите из текущей конфигурации приложения. Заголовки Upgrade и Connection являются hop-by-hop и должны передаваться явно; это подтверждает официальная инструкция Nginx WebSocket proxying.
Не увеличивайте тайм-аут бесконечно. Reverb должен отправлять активность, а Nginx — освобождать мёртвые соединения.
Сертификаты сайтов
На чистой установке сертификаты для указанных доменов выпускает и подключает установщик. До выпуска DNS должен указывать на сервер, а проверочный запрос не должен блокироваться редиректом, сетевым экраном или ошибочным правилом Cloudflare.
Для Cloudflare допускаются:
публично доверенный сертификат с автоматическим продлением на сервере;
Cloudflare Origin CA, если браузер не подключается к origin напрямую.
На существующем сервере с FASTPANEL сертификат обслуживается через SSL-настройки карточки соответствующего сайта. Не применяйте одновременно ручной выпуск, панель и отдельный автоматизатор к одному сертификату.
После установки проверьте срок, имя, полную цепочку и автоматическое продление. В Cloudflare используйте Full (strict), как описано в инструкции переноса.
Применение и возврат
После правки:
Проверьте клиентский домен, панель, API, статический файл и WebSocket. При ошибке верните резервную копию:
Не выполняйте reload, если тест возвращает ошибку. Не удаляйте резервную копию до завершения сквозной проверки.
Последнее обновление
Это было полезно?