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

Конфигурация 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, если тест возвращает ошибку. Не удаляйте резервную копию до завершения сквозной проверки.

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

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