【发布时间】:2021-11-18 12:33:29
【问题描述】:
如何让同一 wifi 网络上的其他计算机查看子域?
问题: 我目前正在 wifi 家庭网络上的服务器计算机上运行 docker 实现。当我访问该服务器计算机上的子域时,我能够看到分配的容器负载。但是,当我从同一 wifi 网络上的另一台计算机访问子域时,它根本找不到服务器。当我访问主域时,我看到了计算机。
假设:
- 存在 DNS 问题?
- 非服务器计算机主机文件中存在错误配置?
- 华硕路由器配置错误?
服务器和路由器: Mac OS XI 服务器。华硕路由器。
主机文件服务器:
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-proxy.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://default;
}
}
欢迎任何有助于改进此实施的帮助或建议。
【问题讨论】:
-
什么是主域? telnet SERVER_NETWORK_IP 80 工作吗?
-
@DefSoudani 不确定它的 telnet 部分,但主域是 hub.local。我现在几乎 99.99% 确定这是一个 DNS 问题。
标签: docker nginx docker-compose dns subdomain