Рейтинг:0

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

флаг cn

Спустя годы после того, как мой первый домашний сервер умер, я решил снова его завести. На этот раз ради обучения и большей гибкости я делаю это с контейнерами докеров. Дело в том, что я настроил обратный прокси-сервер с nginx и компаньоном let's ecnrypt, чтобы обеспечить шифрование SSL и избежать переадресации большего количества портов на моем маршрутизаторе.

Это работает почти безупречно, с моего телефона с мобильными данными или из совершенно другой сети я могу получить доступ к своим услугам без каких-либо проблем. Проблема возникает, когда я пытаюсь получить доступ сюда в той же локальной сети, я могу получить доступ 1/10 раз, а остальные 9/10 тайм-аутов.

Нет никакой разницы в том, как я пытаюсь подключиться; в обоих случаях через веб-браузер с использованием <subdomain>.<domain> как URL-адрес

Это мои текущие контейнеры: введите описание изображения здесь

Что касается моего текущего файла docker-compose, то он такой:

версия: '3'
Сервисы:
  обратный прокси:
    изображение: jwilder/nginx-прокси
    порты:
      - «80:80»
      - '443:443'
    container_name: обратный прокси
    сети:
      сервисная_сеть: ноль
    тома:
      - '/var/run/docker.sock:/tmp/docker.sock:ro'
      - '.\nginx\certs:/etc/nginx/certs'
      - '.\nginx\vhosts:/etc/nginx/vhost.d'
      - '.\nginx\html:/usr/share/nginx/html'
  ACME-SSL:
    изображение: jrcs/letsencrypt-nginx-proxy-companion
    зависит от:
      - обратный прокси
    среда:
      NGINX_PROXY_CONTAINER: обратный прокси
    сети:
      сервисная_сеть: ноль
    тома:
      - '/var/run/docker.sock:/var/run/docker.sock:ro'
      - '.\nginx\certs:/etc/nginx/certs'
      - '.\nginx\vhosts:/etc/nginx/vhost.d'
      - '.\nginx\html:/usr/share/nginx/html'
  нгинкс:
    изображение: nginx
    зависит от:
      - обратный прокси
    порты:
      - '8080:80'
    разоблачать:
      - 8080
    среда:
      - NGINX_HOST=<ДОМЕН>
      - NGINX_PORT=80
      - HTTP_PORT=8080
      - ВИРТУАЛЬНЫЙ_ХОСТ=<ДОМЕН>
      - LETSENCRYPT_HOST=<ДОМЕН>
      - LETSENCRYPT_EMAIL=<ЭЛЕКТРОННАЯ ПОЧТА>
    сети:
      сервисная_сеть: ноль
    тома:
      - '.\<КАТАЛОГ>:/usr/share/nginx/html'
  коэль:
    изображение: hyzual/koel
    зависит от:
      - обратный прокси
      - база данных
    порты:
      - «8000:80»
    разоблачать:
      - 8000
    среда:
      - HTTP_PORT=8000
      - VIRTUAL_HOST=<СУБДОМЕН>.<ДОМЕН>
      - LETSENCRYPT_HOST=<СУБДОМЕН>.<ДОМЕН>
      - LETSENCRYPT_EMAIL=<ЭЛЕКТРОННАЯ ПОЧТА>
      - DB_CONNECTION=mysql
      - DB_HOST=база данных
      - DB_USERNAME=коэль
      - DB_PASSWORD=<ПАРОЛЬ>
      - DB_DATABASE=коэль
      - FORCE_HTTPS=истина
      - LASTFM_API_KEY=<API_SECRET>
      - LASTFM_API_SECRET=<API_KEY>
    сети:
      сервисная_сеть: ноль
      db_network: ноль
    тома:
      - '/e/музыка:/музыка'
      - '.\koel\covers:/var/www/html/public/img/covers'
      - '.\koel\search_index:/var/www/html/storage/search-indexes'
  база данных:
    изображение: 'mysql/mysql-сервер: 5.7'
    тома:
      - '.\mysql:/var/lib/mysql'
    среда:
      - MYSQL_ROOT_PASSWORD=<ПАРОЛЬ>
      - MYSQL_DATABASE=коэль
      - MYSQL_USER=куль
      - MYSQL_PASSWORD=<ПАРОЛЬ>
    сети:
      db_network: ноль
сети:
  сервис_сеть:
    водитель: мост
  db_network:
    водитель: мост
 

*Я изменил некоторые значения на описания между < > поскольку они содержат личную информацию.

Рейтинг:1
флаг br

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

Если это так, вы можете исключить это, записав свое доменное имя и IP-адрес вашего обратного прокси-сервера в /etc/hosts, а затем протестировав соединение.

Постоянное исправление потребует от вас либо запустить разделенный DNS, либо сохранить сопоставление этого имени хоста с IP-адресом в переопределениях DNS вашего маршрутизатора, если у него есть такая опция.

флаг cn
Я изменил переопределение DNS! Но я попытаюсь посмотреть, работает ли он локально с файлом hosts. Если это сработает, я перепроверю свои конфигурации DNS.
флаг cn
Разрешение DNS через файл hosts работало нормально, я должен понять, почему мои переопределения DNS не работают, но вы были правы!

Ответить или комментировать

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