#docker #nginx #docker-compose #dns #subdomain
Вопрос:
Как я могу заставить другие компьютеры в той же сети Wi-Fi видеть поддомен?
Проблема: В настоящее время я запускаю реализацию docker на компьютере-сервере в домашней сети Wi-Fi. Когда я посещаю поддомены на этом компьютере-сервере, я вижу, как загружаются назначенные контейнеры. Однако, когда я посещаю поддомен с другого компьютера в той же сети Wi-Fi, он вообще не может найти сервер. Когда я посещаю основной домен, я вижу компьютер.
Допущения:
- Есть проблема с DNS?
- В файле хоста компьютеров, не относящихся к серверу, отсутствует конфигурация?
- Неправильная конфигурация на маршрутизаторе ASUS?
Сервер и маршрутизатор: Сервер Mac OS XI. Маршрутизатор ASUS.
Хост-файловый сервер:
127.0.0.1 hub.local
127.0.0.1 container1.hub.local
127.0.0.1 container2.hub.local
Файл хоста Другой ПК:
[SERVER_NETWORK_IP] hub.local
[SERVER_NETWORK_IP] container1.hub.local
[SERVER_NETWORK_IP] container2.hub.local
Файл композитора:
version: '3.7'
services:
proxy:
image: 'jwilder/nginx-proxy:latest'
container_name: proxy-test
ports:
- '80:80'
- '443:443'
volumes:
- '/var/run/docker.sock:/tmp/docker.sock:ro'
- './nginx-proxy.conf:/etc/nginx/conf.d/nginx-proxy.conf:ro'
networks:
- default
container1:
image: wordpress
container_name: container-1
environment:
VIRTUAL_HOST: container1.hub.local
ports:
- '8080:80'
networks:
- default
container2:
image: wordpress
container_name: container-2
environment:
VIRTUAL_HOST: container2.hub.local
ports:
- '8081:80'
networks:
- default
default:
container_name: default
image: nginx
environment:
VIRTUAL_HOST: hub.local
ports:
- '8082:80'
volumes:
- './src:/var/www/'
- './webnginx/conf.d:/etc/nginx/conf.d'
networks:
- default
networks:
default:
driver: bridge
Nginx-прокси.conf
server {
listen 80;
server_name container1.hub.local;
location / {
proxy_pass http://container-1;
}
}
server {
listen 80;
server_name container2.hub.local;
location / {
proxy_pass http://container-2;
}
}
server {
listen 80;
server_name hub.local;
location / {
proxy_pass http://defau<
}
}
Любая помощь или предложения по улучшению этой реализации приветствуются.
Комментарии:
1. что является основным доменом ? работает ли telnet SERVER_NETWORK_IP 80 ?
2. @DefSoudani Не уверен в части telnet, но основным доменом является hub.local. Я почти на 99,99% уверен, что на данный момент это проблема DNS.
Ответ №1:
Кредит принадлежит парню по имени Поки через Битмердж. Возникла проблема с записями в файле /etc/hosts. Необходимо было явно добавить каждый поддомен в связи с сетевым IP-адресом сервера. Я использовал ifconfig, чтобы найти IP-адрес сервера.
Пример:
192.0.0.4 container1.hub.local