iEXExchanger 10.x
Официальный сайт
  • 10.x
  • История версий
  • Введение
  • Журнал изменений
  • Общая информация
    • Полезные советы
      • Технические требования к серверу
        • Сервер на FastVPS
        • Сервер на Timeweb
      • Домен для обменника
      • От мониторингов
        • Как попасть в BestChange
        • Рекомендации к обменникам
      • Защита от DDoS-атак
    • Центр безопасности
      • Настройка Google Authenticator
      • Изменение URL панели управления
      • Доступ к панели по IP-адресу
      • Управление группами пользователей
      • CSP Безопасность
      • Защита от CSRF-атак
      • Код безопасности для автовыплат
      • Ограничение доступа по IP в Cloudflare
      • Настройка защиты Fail2ban
      • Советы по безопасности от BestChange
      • Конфигурация брандмауэра UFW
      • Блокировка нежелательных email-адресов
  • Обучение
    • Изучение продукта
      • Введение
      • Начало работы
      • Главы
        • 1. Основные настройки
        • 2. Настройки интерфейса
        • 3. Коды валют и платежные системы
        • 4. Создание валют
        • 5. Настройка курсов
        • 6. Создание направлений
        • 7. Настройка заявок
    • Видеоматериалы
      • Быстрый запуск с нуля
      • Начало работы
        • Настройка планировщика задач
      • Главы
  • УСТАНОВКА И НАСТРОЙКА
    • Установка системы
      • Установка ПО
        • Шаг 1: Подготовка
        • Шаг 2: Настройка FastPanel
        • Шаг 3: Команды терминала
        • Шаг 4: Запуск процессов
          • Настройка Supervisor
          • Настройка PM2
        • Шаг 5: Финальные настройки
      • Интеграция с Cloudflare
        • Подключение сайта к Cloudflare
        • Включение HTTPS
        • Режим защиты (Under Attack Mode)
        • Настройка DNS
        • Установка SSL-сертификата
        • Белый и чёрный список IP
        • Очистка кэша Cloudflare
      • Настройка конфигурации
    • Обновление продукта
      • Обновление до 10.0.3
      • Обновление до 10.0.2
      • Переход на версию 10.0.0
      • Обновления внутри 9.x
        • Инструкция с 9.2.1 до 9.2.2
        • Инструкция с 9.2 до 9.2.1
        • Инструкция с 9.1 до 9.2
      • Инструкция по загрузке архивов и лицензии
    • Файлы лицензии
    • CRON: настройка задач
  • Заявки
    • Работа с заявками
      • Статусы заявок
      • Этапы для Заявок
      • Лимиты для операторов
      • Причины для заявок
      • Настройка Live заявок
    • Верификация
      • Верификация карт
        • Категория верификаций
        • Инструкция верификаций
      • Верификация личности (KYC)
  • Меню
    • Основное
      • Добавить код валюты
      • Добавить платежную систему
      • Валюты
        • Добавить новую валюту
        • Сети для валют
        • Фильтры для валют
        • Метки для валют
        • Быстрые команды
      • Направление
        • Добавить новое направление
        • Режимы направлений
        • Сортировка направлений
        • Групповая комиссия
        • Сумма обмена
        • Уведомления
      • Резервы
        • Стандартный резерв
        • Резерв из сервера
        • Резерв из файла
      • Платежные реквизиты
        • Добавить реквизит
        • Информационные поля
        • Дополнительные поля
        • Как настроить систему выдачи реквизитов по запросу?
      • Уведомления
        • Настройка уведомлений в направлениях
        • Настройка уведомлений в валютах
      • Дополнительные поля
        • Доп. поля для валют
        • Доп. поля для направлений
      • Шаблоны
        • Шаблоны для валют
        • Шаблоны для направлений
    • Внешний вид
      • Кастомизация главной страницы
      • Кастомизация окна оплаты заявки
      • Настройка текста
      • Виды отображения направлений обмена на главной странице
      • Уведомление на сайте
      • Цветовая палитра и стили оформления сайта
      • Вопросы и Ответы
        • Как настроить модальное окном "Подтверждение обмена"?
        • Как изменить шрифт на сайте?
        • Как вывести QR-Код при оплате заявки?
        • Как вывести галочку "Не запоминать введенные данные"?
        • Как настроить иконку и логотип?
        • Как установить свой фон на сайте?
        • Как настроить смену стилей?
    • Парсер курсов
      • Типы курсов
        • Курсы из источников
        • BestChange API парсер
          • Как получить ключ BestChange API?
          • Где находятся все созданные пары из BestChange API?
          • Настройка BestChange API парсера
          • Теги и формулы для расчёта курсов BestChange
        • Курсы из файла
        • Курсы по формуле
          • Теги и формулы для расчёта курсов валют
          • Стандартные формулы для расчёта курсов
        • Курсы конкурентов
      • CoinMarketCap API Keys
      • Дата последнего обновления курсов
      • Ускоренное обновление курсов
    • Партнерам и скидки
      • Партнерам
        • Баннеры партнеров
        • Другие разделы
        • Настройка партнерских процентов
        • Настройка партнерской программы для направлений обмена
        • Настройки партнерской программы
        • Настройка валюты для партнёрской программы
        • Почему не начисляются бонусы партнерам?
        • Почему в реферальной программе, неправильно отображается символ валюты?
      • Скидки
    • Пользователи
      • Группы прав пользователей
      • Фильтр по: IP или E-Mail
      • Лог авторизаций
  • Вопросы и ответы
    • Заявки
      • Где можно смотреть прибыль от заявок?
      • Почему создаются заявки, когда нет резерва?
      • Почему заявка автоматически отклоняется через минуту?
      • Как прикрепить файл к заявке, чтобы клиент увидел?
      • Как добавить комментарий к заявке пользователя?
      • Как отключить поле E-mail при для новых клиентов?
      • Как клиенты могут привязать чек к заявке?
      • Почему клиенты при открытии заявки получают сообщение "Нет доступ к заявке"?
      • Могут ли главные менеджеры выполнять любые заявки?
      • Почему клиенты не видят заявки в личном кабинете?
    • Направление обмена
      • Как настроить сумму обмена и установить направление по умолчанию на главной?
      • У меня большое кол-во направлений, как удобнее вывести их на главном?
    • Инфраструктура
      • Как сделать перенос с поддомена на основной домен?
      • Почему IP-адрес клиента отображается некорректно?
      • Как восстановить доступ в панель управления, если забыли пароль?
      • Как сбросить путь доступа к админке?
      • Где расположена корневая директория вашего сайта?
      • Где найти путь к проекту и имя пользователя?
      • (Важно) Что нужно знать перед тем как обновиться?
      • Как открыть терминал и подключиться к серверу по SSH?
      • Можно ли использовать имя файла без указания полного пути в URL?
    • Другие вопросы
      • Как попробовать демо-версию админки перед покупкой?
      • Почему в курсе обмена отображаются только целые числа?
      • Как изменить e-mail или пароль администратора?
      • Как включить Технический перерыв?
      • Где найти список XML кодов валют?
      • Почему администратору на E-mail не приходят сообщения?
      • Как сменить тип начисления вознаграждений для определенных клиентов?
      • Как настроить на blockchain ссылку?
      • Настройка AML, правил сервиса и согласия пользователей
  • Автоматизация
    • Мерчанты и API
      • Мерчанты
        • Предупреждение о рисках
        • Общие настройки
        • Rapira
        • AlfaBit (Pay)
        • Exnode
        • Heleket
        • WestWallet
        • Merchant001
        • PayScrow
        • Volet (ex.ADVCash)
        • Payeer
        • PerfectMoney
        • ePayCore
        • Firekassa
        • Tron
        • Ripple
        • WhiteBit
        • Garantex
        • RPC Connection
        • LuckyPay
        • IvanPay
        • B2BWallet
        • ABCEX
      • Автовыплаты
        • Предупреждение о рисках
        • Общие настройки автовыплат
        • Rapira
        • AlfaBit (Pay)
        • Exnode
        • Heleket
        • WestWallet
        • Garantex
        • Merchant001
        • Volet (ex.ADVCash)
        • Payeer
        • Firekassa
        • Ripple
        • Tron
        • WhiteBit
        • ePayCore
        • PerfectMoney
        • PayScrow
        • RPC Connection
        • LuckyPay
        • IvanPay
        • B2BWallet
        • ABCEX
        • GoldEx
      • Автоматизация валют с разными сетями
      • Как включить автовыплату без участия оператора?
      • Почему не выводится инструкция к оплате?
      • Стратегия обработки ошибок мерчантов
    • AML сервисы
      • Провайдеры
        • GETBlock
        • Rapira
        • AMLBot
        • BitOK
      • Как включить галочку о соглашении с правилами AML?
      • Как привязать AML сервис к валюте?
  • Настройки
    • Уведомления
      • E-mail уведомление
        • Настройка SMTP Yandex
        • Resend
      • Telegram уведомление
      • Всплывающее уведомление
    • Онлайн Чаты
      • Подключение JivoSite
        • Опции для JivoSite
      • Онлайн чат в заявке
    • Настройки
      • Логирование
        • Настройка логирования
      • Архивация заявок
    • Экспорт курсов
  • Модули
    • Контент
      • Меню
      • Страницы
      • Новости
      • Вопросы и Ответы
    • Утилиты
      • Промо-коды
      • Конкурсы
      • Баннеры
      • Контакты
      • Отзывы
      • Статистика
      • Преимущество
      • Статус работы сервиса
    • Работа с наличными
      • Где найти список кодов городов для работы с наличными?
    • Черный список
      • Черный список BestChange
    • Другие модули
      • Модуль "Ссылки для Footer"
      • Модуль "Внутренний счет"
        • Внутренний счет (Мерчант)
        • Внутренний счет (Автовыплата)
      • Модуль "Информация по банковским картам"
      • Модуль "Proxy менеджер"
      • Модуль "Счета пользователей"
      • Модуль "Правила сайта"
  • Прочие
    • Диагностика ошибок
    • Загрузка статического файла
    • Подключение Google reCaptcha
Powered by GitBook

Основное

  • Требования к серверу

iEXExchanger — это профессиональное решение для создания обменника валют.

On this page
  • Создание доменов в панели FastPanel
  • Шаг 1. Авторизация в FastPanel
  • Шаг 2. Создание основного сайта (ваш основной домен)
  • Шаг 3. Конфигурация сайта
  • Шаг 4. Создание поддомена (app.ваш_домен)
  • Загрузка файлов обменника и лицензии в FastPanel
  • Шаги загрузки файлов:
  • Настройка файла конфигурации .env для поддомена
  • Открытие файла .env
  • Ключ лицензии
  • Параметры соединения с базой данных
  • Настройка сессий
  • Настройка cookie
  • Путь к админке сайта (обязательно)
  • Настройка доменов и безопасности (CORS и Sanctum)
  • Настройка базы данных для Laravel Pulse
  • Создание базы данных Pulse в FastPanel
  • Настройка подключения в файле .env
  • Загрузка основного файла базы данных
  • Шаг 1. Открытие phpMyAdmin из FastPanel:
  • Шаг 2. Импорт базы данных через phpMyAdmin:
  • Изменение директории сайта (важно!)
  • Пошаговая инструкция:
  • Включение SSL-сертификатов (HTTPS) в FastPanel
  • Шаг 1. Настройка SSL для основного домена
  • Шаг 2: Создание SSL-сертификата для поддомена
  • Важные моменты:
  • Настройка типа бэкенда и версии PHP в FastPanel
  • Ручная настройка конфигурации Nginx
  • Настройка Nginx для поддомена (Backend)
  • Настройка Nginx для основного домена (Frontend)

Was this helpful?

  1. УСТАНОВКА И НАСТРОЙКА
  2. Установка системы
  3. Установка ПО

Шаг 2: Настройка FastPanel

PreviousШаг 1: ПодготовкаNextШаг 3: Команды терминала

Last updated 2 days ago

Was this helpful?

На этом этапе вы выполните полную подготовку и настройку вашего сервера через панель управления FastPanel. Правильное выполнение каждого пункта обеспечит стабильную, безопасную и корректную работу обменника.


Создание доменов в панели FastPanel

В этом разделе вы узнаете, как правильно создать основной домен и поддомен в панели FastPanel. Чёткое следование инструкции обеспечит корректную работу вашего обменника. Пожалуйста, выполняйте шаги внимательно и последовательно.

Шаг 1. Авторизация в FastPanel

  • Перейдите в панель управления FastPanel по адресу, предоставленному вашим хостингом (обычно выглядит так: https://ip_адрес:8888 или аналогично).

  • Введите свой логин и пароль и нажмите кнопку «Войти».

Шаг 2. Создание основного сайта (ваш основной домен)

  1. В меню слева выберите раздел «Сайты».

  2. На странице сайтов нажмите кнопку «Создать сайт».

  3. В открывшемся окне выберите вариант «Создать сайт вручную» (подходит для большинства сайтов).

  4. В открывшейся форме укажите:

    • В поле «Какой домен подключаем?» введите адрес вашего основного домена (например, ваш_домен).

    • В поле «К какому IP-адресу?» убедитесь, что указан правильный IP-адрес вашего сервера.

    • В поле «DNS аккаунт» оставьте значение по умолчанию (обычно это ваш провайдер, например FASTVPS).

    • Опционально можете включить галочку «Добавить www алиас», если хотите, чтобы сайт был доступен и по адресу www.ваш_домен.

  5. Нажмите кнопку «Следующий шаг», чтобы перейти к настройке конфигураци

Шаг 3. Конфигурация сайта

На этапе конфигурации FastPanel автоматически предложит стандартные настройки сайта, которые подходят в большинстве случаев.

Важно

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

Нажмите кнопку «Создать сайт» и дождитесь завершения процедуры создания.

После того как сайт будет создан:

  • Обязательно скачайте предложенный файл конфигурации, который будет доступен рядом с кнопкой «Посмотреть». Он потребуется вам в дальнейшем для настройки соединений.

Шаг 4. Создание поддомена (app.ваш_домен)

Для создания поддомена повторите вышеописанную процедуру:

  1. Снова нажмите кнопку «Создать сайт» в разделе сайтов.

  2. Выберите «Создать сайт вручную».

  3. Укажите поддомен в формате app.ваш_домен.

  4. IP-адрес и DNS оставьте без изменений (как и в основном домене).

  5. Нажмите «Следующий шаг» и снова «Создать сайт» с предложенными по умолчанию настройками.

  6. После создания поддомена также скачайте предложенный файл конфигурации.

Готово! Теперь у вас настроены основной домен и поддомен. Вы скачали два файла конфигурации, которые понадобятся вам для дальнейших шагов настройки обменника.


Загрузка файлов обменника и лицензии в FastPanel

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

Шаги загрузки файлов:

  1. В панели FastPanel на странице «Сайты» выберите нужный домен (основной или поддомен).

  2. Перейдите в раздел «Файлы».

  3. В правом верхнем углу файлового менеджера нажмите кнопку «Загрузить» (значок ⬆️).

  4. Для основного домена загрузите архив Frontend и распакуйте его.

  5. Для поддомена загрузите:

    • архив Backend (распакуйте после загрузки);

    • архив с лицензией (его тоже нужно распаковать после загрузки; внутри находятся текстовые файлы с лицензией).

После загрузки и распаковки файлов вы будете готовы перейти к следующему этапу настройки обменника.


Настройка файла конфигурации .env для поддомена

После загрузки и распаковки всех файлов обменника и лицензии необходимо обязательно настроить конфигурационный файл .env для поддомена (backend). Это один из самых важных шагов установки.

Внимательно следуйте инструкции ниже:

Открытие файла .env

  • В файловом менеджере FastPanel откройте папку вашего поддомена.

  • Найдите и откройте на редактирование файл .env.

Ключ лицензии

Лицензионный ключ вы получите в личном кабинете сайта iEXExchanger.

  1. Авторизуйтесь в личном кабинете.

  2. Перейдите в раздел «Мои лицензии».

  3. Скопируйте ключ лицензии рядом с вашим активным доменом.

Вставьте полученный ключ в параметр:

.env
LICENSE_KEY=ваш_лицензионный_ключ

Параметры соединения с базой данных

Данные для подключения к базе данных вы получаете после создания сайта в панели управления FastPanel. Обычно они отображаются сразу после создания сайта. Эти данные выглядят примерно так:

Пользователь:
- Имя: ваше_имя_пользователя  # указан в данных FastPanel после создания сайта
- Пароль: ваш_пароль_пользователя

База данных:
- Имя: имя_вашей_базы
- Логин: ваш_логин_базы
- Пароль: ваш_пароль_базы

Важно:

Подставьте в параметры ниже именно свои данные, которые вам выдала панель управления FastPanel после создания сайта:

.env
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=имя_вашей_базы             # ваше имя базы данных
DB_USERNAME=ваше_имя_пользователя      # имя пользователя из панели
DB_PASSWORD=ваш_пароль_пользователя    # пароль пользователя из панели

Теперь соединение с базой данных настроено корректно, и вы можете переходить к следующему шагу инструкции.

Настройка сессий

Эти параметры регулируют поведение пользовательских сессий, влияя на то, как ваш обменник сохраняет авторизацию пользователей.

Настройте параметры следующим образом:

.env
SESSION_DRIVER=database
SESSION_SECURE_COOKIE=true
SESSION_DOMAIN=.ваш_домен

Подробные пояснения к параметрам:

  • SESSION_DRIVER=database

    Сессии пользователей будут храниться в базе данных, что обеспечивает надёжность работы системы.

  • SESSION_SECURE_COOKIE=true

    Если ваш сайт использует SSL-сертификат (работает по HTTPS), укажите true. Если SSL не используется, укажите false.

  • SESSION_DOMAIN=.ваш_домен

    Если указать домен в таком виде (с точкой впереди), авторизация пользователей будет доступна на основном сайте и на всех его поддоменах (например, app.ваш_домен).

Обязательно указывайте свои реальные домены и проверяйте правильность их написания.

Настройка cookie

Эти параметры отвечают за идентификацию и сохранение авторизации ваших пользователей.

Установите следующие значения в файле .env:

.env
SESSION_COOKIE=название_вашей_сессии

Пояснение:

  • SESSION_COOKIE — это имя cookie, в котором хранится информация о сессии пользователя.

    Если вы не уверены, какое имя выбрать, оставьте значение по умолчанию. Оно не влияет на работоспособность, если не требуется специальных настроек.

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

.env
SESSION_COOKIE=iexexchanger_session

Путь к админке сайта (обязательно)

Это обязательный параметр, задающий уникальный адрес (URL), по которому будет доступна панель администратора вашего обменника. Правильная настройка этого параметра очень важна для безопасности вашего сайта.

Укажите параметр в файле .env:

.env
APP_ADMIN_PATH=ваш_путь_к_админке

Пример правильной настройки:

.env
APP_ADMIN_PATH=iexadmin

После настройки админка станет доступна по следующему адресу: https://app.ваш_домен/iexadmin

Рекомендуется:

  • Используйте уникальный путь (например, комбинацию букв и цифр), чтобы повысить безопасность и предотвратить несанкционированный доступ.

  • Запишите или запомните указанный путь, так как это единственный способ попасть в админ-панель сайта.

Настройка доменов и безопасности (CORS и Sanctum)

Для обеспечения безопасности и корректного взаимодействия вашего приложения с внешними запросами важно правильно настроить следующие параметры:

  • Sanctum Stateful Domains (SANCTUM_STATEFUL_DOMAINS):

    Список доверенных доменов, с которых разрешено выполнение запросов с поддержкой аутентификации (cookie, авторизационные токены). Обычно это ваш основной домен и поддомены, которые будут взаимодействовать с сервером приложения через API.

  • CORS Allowed Origins (CORS_ALLOWED_ORIGINS):

    Список доменов, с которых разрешено выполнение междоменных (CORS) запросов к API вашего приложения. Добавляйте сюда ваш основной сайт и любые поддомены, с которых будет осуществляться доступ к вашему API.

  • Frontend URL (FRONTEND_URL):

    Основной домен вашего фронтенд-приложения, который используется сервером для формирования ссылок и перенаправлений.

  • CORS Supports Credentials (CORS_SUPPORTS_CREDENTIALS):

    Настройка, разрешающая передачу авторизационных данных (cookies, заголовки аутентификации и прочее) в междоменных запросах.

Убедитесь, что указанные параметры соответствуют вашим актуальным доменам, иначе доступ к приложению и работа его функционала могут быть нарушены.

Рекомендуется проверять и актуализировать эти настройки при изменении или добавлении новых доменов, поддоменов или при переносе приложения на другой сервер.

CORS_ALLOWED_ORIGINS=https://ваш_домен,https://app.ваш_домен
FRONTEND_URL=https://ваш_домен
CORS_SUPPORTS_CREDENTIALS=true

Итоговая конфигурация

APP_URL=https://ваш_домен

API_URL=https://app.ваш_домен

CORS_ALLOWED_ORIGINS=https://ваш_домен,https://app.ваш_домен
FRONTEND_URL=https://ваш_домен
CORS_SUPPORTS_CREDENTIALS=true

SESSION_DRIVER=database
SESSION_DOMAIN=.ваш_домен
SANCTUM_STATEFUL_DOMAINS=https://app.ваш_домен
SESSION_SECURE_COOKIE=true

Настройка базы данных для Laravel Pulse

Laravel Pulse — инструмент мониторинга и анализа производительности приложения. Для эффективной работы Pulse рекомендуется создать отдельную базу данных.

Создание базы данных Pulse в FastPanel

  1. В FastPanel перейдите: Управление → Базы данных → «Новая база данных».

  2. Заполните форму:

    • Имя и логин: одинаковые (например, pulse_db)

    • Сайт: выберите ваш поддомен

    • Владелец: выберите пользователя сайта (не root, не fastuser)

    • Пароль: сгенерируйте и сохраните пароль

Нажмите «Сохранить».

Настройка подключения в файле .env

Откройте файл .env и добавьте настройки для Pulse:

.env
PULSE_DB_CONNECTION=mysql-pulse
PULSE_DB_HOST=127.0.0.1
PULSE_DB_PORT=3306
PULSE_DB_DATABASE=pulse_db
PULSE_DB_USERNAME=pulse_db
PULSE_DB_PASSWORD=сгенерированный_вами_пароль

После этого сохраните изменения. Теперь Laravel Pulse готов к работе.


Загрузка основного файла базы данных

Теперь необходимо загрузить начальные данные в базу данных вашего обменника. Выполните эти шаги внимательно:

Шаг 1. Открытие phpMyAdmin из FastPanel:

  • Перейдите в панель FastPanel → Управление → Базы данных.

  • В списке баз данных найдите созданную вами базу (основную, не Pulse) и нажмите на иконку «Открыть phpMyAdmin» (иконка в виде квадрата со стрелкой ↗️).

Шаг 2. Импорт базы данных через phpMyAdmin:

  1. В phpMyAdmin в левом меню выберите именно вашу базу данных.

  2. В верхнем меню нажмите на раздел «Импорт».

  3. Нажмите кнопку «Выберите файл», найдите файл базы данных в распакованном архиве вашего обменника по следующему пути:

database/iex_data.sql
  1. После выбора файла нажмите кнопку «Импорт» (внизу страницы).

Подождите завершения загрузки (это может занять несколько минут).

Теперь база данных загружена и готова к дальнейшей работе обменника.


Изменение директории сайта (важно!)

После того, как вы загрузили архивы на сервер, необходимо указать правильную директорию сайта, чтобы веб-приложение работало корректно и безопасно.

Пошаговая инструкция:

  1. В левом меню нажмите на пункт «Сайты».

  2. Из списка выберите ваш поддомен (например, app.ваш_домен) и нажмите на него.

  3. В открывшемся окне перейдите на вкладку «Настройки».

  4. Найдите и перейдите в раздел «Директория сайта».

  5. В поле «Поддиректория» убедитесь, что указано значение public. Если указано другое значение, обязательно замените его на public.

    Корректная настройка должна выглядеть так:

Стартовая страница: index.php
Поддиректория: public
  1. После внесения изменений нажмите кнопку «Сохранить».

Это действие направит все запросы пользователей в директорию public, что важно для безопасности и правильной работы Laravel-приложения. Без этой настройки может быть раскрыт доступ к конфиденциальным файлам проекта, поэтому её выполнение обязательно.


Включение SSL-сертификатов (HTTPS) в FastPanel

Эта инструкция позволит вам быстро и корректно настроить SSL-сертификаты для основного домена и поддомена в панели управления FastPanel, что обеспечит безопасное подключение пользователей к вашему сайту через HTTPS.

Шаг 1. Настройка SSL для основного домена

  1. Войдите в панель управления FastPanel.

  2. В левом меню нажмите на вкладку «Сайты» и выберите основной домен.

  3. Найдите раздел «SSL сертификаты» и нажмите на него.

  4. Нажмите кнопку «Новый сертификат» в верхнем правом углу.

  5. В открывшемся окне выберите тип «Самоподписанный».

  6. Заполните форму:

    • Email — укажите свой почтовый адрес для получения уведомлений.

    • Длина ключа — выберите рекомендуемое значение 2048.

    • Основной домен — автоматически указан ваш основной домен.

    • Алиасы — добавьте алиас для основного домена (например, www.ваш_домен).

    • Срок действия — установите рекомендуемый срок действия сертификата 365 дней.

  7. Нажмите кнопку «Сохранить».

Шаг 2: Создание SSL-сертификата для поддомена

  1. Вернитесь на страницу со списком сайтов и выберите ваш поддомен (например, app.ваш_домен).

  2. Снова откройте раздел «SSL сертификаты».

  3. Нажмите кнопку «Новый сертификат».

  4. Выберите тип сертификата «Самоподписанный».

  5. Заполните форму аналогично предыдущему шагу:

    • Email — укажите свой почтовый адрес.

    • Длина ключа — 2048.

    • Основной домен — автоматически указан ваш поддомен.

    • Алиасы — добавьте алиас для поддомена (например, www.app.ваш_домен).

    • Срок действия — 365 дней.

  6. Нажмите кнопку «Сохранить».

После завершения этих действий вы увидите оба сертификата в списке SSL-сертификатов для ваших сайтов.

Важные моменты:

  • Самоподписанные сертификаты подходят для тестирования и внутренних ресурсов. Для публичных сайтов рекомендуется использовать сертификаты Let's Encrypt, которые можно выпустить также через FastPanel.

  • SSL-сертификаты автоматически активируются после создания. Убедитесь, что настройки вашего сайта корректно используют HTTPS-протокол.

Теперь ваши сайты будут работать по защищённому HTTPS-соединению.


Настройка типа бэкенда и версии PHP в FastPanel

Если на вашем поддомене по умолчанию установлен Apache, вам необходимо переключить его на PHP-FPM, чтобы обеспечить корректную работу приложения на Laravel.

Шаг 1. Переход в раздел настроек поддомена:

  • В главном меню панели управления FastPanel выберите ваш поддомен.

  • Нажмите на иконку «Настройки» в меню управления сайтом.

Шаг 2. Измените тип бэкенда на PHP-FPM:

  • В открывшемся меню слева перейдите в раздел «Бэкенд (PHP, Обратный прокси и т.п.)».

  • В поле «Тип бэкенда» выберите вариант:

    PHP-FPM

Шаг 3. Настройте версию PHP:

  • В поле «Версия» выберите нужную версию PHP, например:

    PHP 8.2

Шаг 4. Установите количество воркеров:

  • В поле «Количество воркеров» рекомендуется указать значение:

    2 (оптимальное для большинства стандартных конфигураций).

Шаг 5. Сохраните настройки:

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

Теперь ваш сайт успешно переключен на обработчик PHP-FPM, а версия PHP корректно настроена и готова к работе.


Ручная настройка конфигурации Nginx

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

Настройка Nginx для поддомена (Backend)

Порядок действий:

  1. Войдите в панель управления FastPanel → «Сайты».

  2. Найдите свой поддомен (например, app.ваш_домен) и перейдите в его настройки.

  3. Перейдите во вкладку «Ручная настройка», затем выберите раздел «Frontend».

  4. Найдите (или добавьте) стандартный блок конфигурации:

location / {
   proxy_pass http://127.0.0.1:81;
   proxy_redirect http://127.0.0.1:81/ /;
   include /etc/nginx/proxy_params;
}
  1. Сразу после него вставьте следующий блок (для поддержки WebSocket и Reverb):

location /app {
    proxy_http_version 1.1;
    proxy_set_header Host $http_host;
    proxy_set_header Scheme $scheme;
    proxy_set_header SERVER_PORT $server_port;
    proxy_set_header REMOTE_ADDR $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";

    proxy_pass http://0.0.0.0:8080;
}
  1. После внесения изменений нажмите кнопку «Сохранить».

Эти настройки обеспечат правильную работу всех realtime-функций вашего приложения на поддомене.

Настройка Nginx для основного домена (Frontend)

Эти настройки позволяют улучшить производительность сайта, настроить редиректы по языкам и связать frontend-приложение с backend-компонентами.

Перейдите в панель управления FastPanel → «Сайты» → ваш основной домен → «Ручная настройка» → «Frontend».

Выполните следующие шаги внимательно:

Шаг 1: Добавьте блок определения языка (map) за пределами блока server

В самый верх конфигурации (за пределами блока server {}) вставьте:

map $http_accept_language $accept_language {
    "~*ru" ru;
    "~*en" en;
    default ru;
}

map $cookie_lang $selected_lang {
    "~^(ru|en)$" $cookie_lang;
    default $accept_language;
}

Этот блок автоматически определяет язык браузера пользователя и сохраняет его в переменной для дальнейшего перенаправления.

Шаг 2: Gzip сжатие

Замени

gzip_comp_level 1;

на

gzip_comp_level 5;

Будет чуть медленнее на слабых CPU, но даст сильнее сжатие.

Шаг 3: Добавьте проверку языка и перенаправление внутри блока server

Найдите строку: disable_symlinks if_not_owner from=$root_path;

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

add_header Vary "Accept-Language, Cookie";

Эти строки направляют пользователя на соответствующую языковую версию сайта по умолчанию (русский язык), если язык браузера не определён.

Шаг 4: Замените блок location / внутри блока server

Если у вас уже есть блок location / внутри конфигурации nginx, его необходимо удалить и заменить новой конфигурацией, подходящей для Angular SSR (localhost:4000) и отдачи статики.

Удалите старую конфигурацию:

location / {
    proxy_pass http://127.0.0.1:81;
    proxy_redirect http://127.0.0.1:81/ /;
    include /etc/nginx/proxy_params;
}


 location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpeg|avi|zip|gz|bz2|rar|swf|ico|7z|doc|docx|map|ogg|otf|pdf|tff|tif|txt|wav|webp|woff|woff2|xls|xlsx|xml)$ {
    try_files $uri $uri/ @fallback;
}

location @fallback {
    proxy_pass http://127.0.0.1:81;
    proxy_redirect http://127.0.0.1:81/ /;
    include /etc/nginx/proxy_params;
}

Добавьте вместо этого:

location = / {
    return 302 /$selected_lang/$is_args$args;
}

location ~ ^/(ru|en)$ {
    add_header Set-Cookie "lang=$1; Path=/; Max-Age=31536000; SameSite=Lax";
    return 302 /$1/$is_args$args;
}

location ~ ^/(ru|en)/ {
    proxy_pass http://localhost:4000;
    proxy_redirect http://localhost:4000/ /;
    include /etc/nginx/proxy_params;
    
    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;

    proxy_buffering on;
    proxy_buffers 16 64k;
    proxy_buffer_size 128k;
    proxy_read_timeout 60s;
    proxy_connect_timeout 10s;
    proxy_send_timeout 10s;
}

location / {
    return 302 /$selected_lang$request_uri$is_args$args;
}

location ^~ /images/ {
    alias /var/www/пользователь/data/www/app.ваш_домен/public/images/;
    expires 30d;
    add_header Cache-Control "public, max-age=2592000, immutable";
    autoindex off;
    access_log off;
}

location ^~ /exports/ {
    alias /var/www/пользователь/data/www/app.ваш_домен/public/static/exports/;
    autoindex off;
    access_log off;
}

location ^~ /static/ {
    alias /var/www/пользователь/data/www/app.ваш_домен/public/static/;
    autoindex off;
    access_log off;
}

location ^~ /storage/ {
    alias /var/www/пользователь/data/www/app.ваш_домен/public/storage/;
    expires 30d;
    add_header Cache-Control "public, max-age=2592000, immutable";
    autoindex off;
    access_log off;
}

location /apis {
    index index.php index.html index.htm;
    alias /var/www/пользователь/data/www/app.ваш_домен/public;

    # Laravel routing fallback
    try_files $uri $uri/ @apis;

    # Защита от скрытых файлов (.env, .htaccess и т.п.)
    location ~ /\.(?!well-known).* {
        deny all;
    }

    # PHP-обработка
    location ~ \.php$ {
        include /etc/nginx/fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $request_filename;
        fastcgi_pass unix:/var/run/app.ваш_домен.sock;
    }
}

location @apis {
    rewrite ^/apis/(.*)$ /apis/index.php?/$1 last;
}

Важно! Обязательно замените все указания:

  • /var/www/пользователь/data/www/app.ваш_домен

  • /var/run/app.ваш_домен.sock

Замените эти шаблонные пути на реальные директории, созданные автоматически при добавлении сайта в панели FastPanel.

Где найти путь к проекту и имя пользователя?