Контейнеры Docker, подключенные к VPN, не работают с Nginx Proxy на Synology

Привет всем,

У меня есть Synology DS1520+, на котором работают все мои контейнеры Docker.
Эти контейнеры Docker подключены к сети VPN, которая настроена с помощью контейнера (Nord) VPN. Я хочу сделать обратное прокси для этих контейнеров, потому что обратное прокси от Synology - это головная боль, если вы сбрасываете миграцию. Однако эта же настройка работала на моем настройке обратного прокси Synology…

Nginx Proxy Manager работает корректно, и контейнеры и сеть также функционируют. Я пробовал различные методы через разные посты на разных форумах и руководствах, но я немного новенький в этом, и моя настройка немного отличается от общепринятых, с которыми я сталкиваюсь.
Мне удалось заставить это работать один раз, но только если я подключаю все мои контейнеры к моему Macvlan (сделано через Portainer), но тогда VPN становится бесполезным (и я этого не хочу).

Я использую Cloudflare для моего DNS, и это тоже, похоже, нормально.
Я пытался подключить Nginx к моей VPN-сети, чтобы они могли быть в одной сети, но это не сработало.
Я получаю либо ошибку 504, либо ошибку шлюза 523…
Я подключил Nginx к моему маршрутизатору (через Macvlan), потому что порты 80 и 443 заняты самой Synology.

У меня нет настроечного файла, потому что я не понимаю его хорошо или не могу найти его на YouTube-каналах, объясняющих это.

Вот мой Docker compose для Nginx Proxy с ombi в качестве примера контейнера, который я хочу сделать обратным прокси. Пожалуйста, дайте знать, если я упустил важный момент или совершил ошибку новичка. Я также не силен в сетях, и я считаю, что это основная проблема и причина, по которой я сделал этот пост. Спасибо всем заранее:

---
версия: '3'
службы:

  nginxproxy:
    изображение: 'jc21/nginx-proxy-manager:latest'
    имя_контейнера: NPM
    перезапуск: всегда
    зависит от:
      - db
    порты:
      # Эти порты в формате <порт-хоста>:<порт-контейнера>
      - '888:80' # Публичный HTTP Порт
      - '4444:443' # Публичный HTTPS Порт
      - '81:81' # Порт веб-администрации
      # Добавьте любые другие порты для стриминга, которые хотите открыть
      # - '21:21' # FTP
    окружение:
      # Параметры соединения Mysql/Maria:
      DB_MYSQL_HOST: "db"
      DB_MYSQL_PORT: 3306
      DB_MYSQL_USER: "npm"
      DB_MYSQL_PASSWORD: "npm"
      DB_MYSQL_NAME: "npm"
      # Раскомментируйте это, если IPv6 не включен на вашем хосте
      DISABLE_IPV6: 'true'
    тома:
      - /volume1/docker/nginxproxymanager/data:/data
      - /volume1/docker/nginxproxymanager/letsencrypt:/etc/letsencrypt
      - /volume1/docker/nginxproxymanager/themepark:/etc/cont-init.d/99-themepark
      - /var/run/docker.sock:/tmp/docker.sock:ro
    stdin_open: true 
    tty: true
    сети: 
      net:
        ipv4_address: 192.168.x.x
#ИЛИ сети: 
      vpn_default

  db:
    изображение: 'jc21/mariadb-aria:latest'
    имя_контейнера: NPM-DB
    перезапуск: всегда
    окружение:
      MYSQL_ROOT_PASSWORD: "npm"
      MYSQL_DATABASE: "npm"
      MYSQL_USER: "npm"
      MYSQL_PASSWORD: "npm"
      MARIADB_AUTO_UPGRADE: 1
    тома:
      - /volume1/docker/nginxproxymanager/mysql:/var/lib/mysql
    stdin_open: true 
    tty: true
    сети: 
      vpn_default
    
  ombi:
    изображение: lscr.io/linuxserver/ombi:latest
    имя_контейнера: Ombi
    окружение:
      - PUID=1026
      - PGID=100
      - TZ=Europe/xxx
      #- BASE_URL=/ombi #опционально
    тома:
      - /volume1/docker/ombi/config:/config
    порты:
      - 3579:3579
    перезапуск: если-остановлено
    stdin_open: true 
    tty: true
    сети: 
      vpn_default

Обновление: я РЕШИЛ / ИСПРАВИЛ проблему.

РЕШЕНИЕ:

  • Порты: Войдите в веб-интерфейс вашего маршрутизатора.

  • Перейдите в раздел перенаправления портов.

  • Добавьте новые правила перенаправления портов:

    • Перенаправьте внешний порт 80 на внутренний порт 888 по IP-адресу вашего NAS Synology.
    • Перенаправьте внешний порт 443 на внутренний порт 4444 по IP-адресу вашего NAS Synology.
  • Cloudflare:

  • Установите имя моего общего домена (например, Domain-name.com) как проксируемый.

  • Опционально: Установите имя поддомена, который вы создали, как A-значение, только DNS

  • После этого вы можете вернуть его обратно на проксируемый.

  • Советы: Не забудьте установить SSL/TLS (в левом меню) на Полное шифрование

И вуаля.

Надеюсь, это поможет кому-то в будущем…
Удачи!