Ниже — пошаговая инструкция и рекомендации, как настроить на Synology Reverse Proxy, чтобы корректно перенаправлять запросы на сервер с aaPanel. Я опишу общую схему и типичные тонкости — при необходимости могу подстроить под ваш конкретный кейс (порт aaPanel, одна/несколько машин в локальной сети и т. п.).
Коротко: создаём правило Reverse Proxy на Synology, пробрасываем домен на внутренний IP:порт, настраиваем сертификат на Synology, при необходимости добавляем заголовки и сохраняем исходный Host.
1) Подготовка DNS и сети
- Привяжите домен/subdomain (например panel.example.com или site.example.com) к вашему публичному IP (A-запись).
- На роутере пробросьте порты 80 и 443 на Synology (если Synology будет принимать HTTPS/HTTP от внешнего мира).
- Убедитесь, что Synology может достучаться до хоста с aaPanel по локальному IP и нужному порту (ping/telnet/curl).
2) Сертификат (рекомендуется)
- На Synology получите и установите SSL-сертификат для вашего домена (Control Panel → Security → Certificate → Add → Get a certificate from Let's Encrypt). Это позволит Synology завершать TLS (SSL-терминация) и показывать корректный сертификат клиентам.
3) Создание правила Reverse Proxy
- Откройте Control Panel → Application Portal → Reverse Proxy → Create.
- В секции Source укажите:
- Protocol: HTTPS (если хотите шифрование с клиента до Synology) или HTTP.
- Hostname: ваш домен/subdomain (например panel.example.com).
- Port: 443 для HTTPS (или 80 для HTTP).
- Path: обычно / (можно указать конкретный путь, если хотите проксировать не корень).
- В секции Destination укажите:
- Protocol: HTTP или HTTPS в зависимости от того, как настроен aaPanel/web-сервис на удалённой машине. Чаще — HTTP.
- Hostname / IP: внутренний IP машины с aaPanel (например 192.168.1.50).
- Port: порт, на котором слушает нужный сервис на aaPanel (80/8080/8888/780 и т. д.).
- Path: / (или соответствующий путь).
- Сохраните правило.
4) Важные опции и заголовки
- Если ваша цель — проксировать сайты, которыми управляет aaPanel (виртуальные хосты), убедитесь, что на aaPanel настроен сайт с нужным доменом. aaPanel/веб-серверы обычно сопоставляют виртуальные хосты по Host заголовку.
- Если AApanel/веб-сервер отдаёт 404 или не тот сайт, нужно заставить прокси передавать исходный Host:
- В DSM в Create Rule есть Advanced/Custom Header (в разных версиях DSM название может отличаться). Добавьте заголовок:
- Name: Host
- Value: yourdomain.example.com
Или убедитесь, что Reverse Proxy сохраняет оригинальный Host (в некоторых версиях Synology это делается автоматически).
- Рекомендуется также пробрасывать X-Forwarded-For / X-Forwarded-Proto:
- X-Real-IP: $remote_addr (если есть возможность)
- X-Forwarded-For: $proxy_add_x_forwarded_for
- X-Forwarded-Proto: https
В GUI Synology можно добавить эти заголовки в Advanced → Custom Headers.
- Если проксируете aaPanel (панель администрирования) сама по себе и она использует WebSocket — включите поддержку WebSocket (если такая опция есть).
5) Проблемы с самоподписанными сертификатами на бекенде
- Если вы указываете Destination HTTPS и на aaPanel стоит самоподписанный сертификат, Synology может блокировать соединение. Либо используйте HTTP между Synology и aaPanel (внутри LAN), либо установите на aaPanel корректный сертификат, либо настройте Synology так, чтобы не проверял сертификат (если такая опция доступна).
6) Безопасность (важно при проксировании панели aaPanel)
- Лучше выделить отдельный поддомен для панели (panel.example.com).
- Ограничьте доступ к панели по IP или включите двухфакторную аутентификацию в aaPanel.
- Не открывайте напрямую порт панели в интернет — лучше проксировать через Synology (и/или добавлять дополнительную аутентификацию на Synology).
- При необходимости добавьте правило файервола на aaPanel-хосте, чтобы принимать запросы только от Synology IP.
7) Проверка и отладка
- Проверьте, что DNS указывает на публичный IP и что запросы доходят до Synology (curl -I https://panel.example.com).
- На Synology проверяйте логи reverse proxy (в DSM: Log Center или в /var/log/nginx/*).
- На сервере aaPanel смотрите доступ/ошибки веб-сервера (nginx/apache logs) — 404/403/500 помогут понять, что не так (обычно host mismatch или права).
- Если видите, что страницы загружаются, но ссылки/ресурсы ломаются — проверьте, что backend правильно формирует URL-ы (особенно если проксируете не корень, а путь /panel).
Пример типовой конфигурации (ситуация: проксирование панели из локального IP 192.168.1.50:8888 на subdomain panel.example.com):
- DNS: panel.example.com → ваш_public_IP
- Router: 80/443 → Synology
- Synology Certificate: panel.example.com → Let's Encrypt
- Reverse Proxy rule:
- Source: Protocol HTTPS, Hostname panel.example.com, Port 443, Path /
- Destination: Protocol HTTP, Hostname 192.168.1.50, Port 8888, Path /
- Custom Headers:
- Host: panel.example.com
- X-Forwarded-For: $proxy_add_x_forwarded_for
- X-Forwarded-Proto: https
Если после настройки что-то не работает — расскажите:
- какой именно хост/порт вы проксируете (IP:порт),
- какой домен используете,
- что именно получается в браузере (ошибка, пустая страница, 404 и т. п.),
- версия DSM (6 или 7) — я подскажу конкретнее и помогу с отладкой.