【问题标题】:Using Nginx, how can I get other computers on the same wifi network to see a subdomain?使用 Nginx,如何让同一 wifi 网络上的其他计算机查看子域?
【发布时间】:2021-11-18 12:33:29
【问题描述】:

如何让同一 wifi 网络上的其他计算机查看子域?

问题: 我目前正在 wifi 家庭网络上的服务器计算机上运行 docker 实现。当我访问该服务器计算机上的子域时,我能够看到分配的容器负载。但是,当我从同一 wifi 网络上的另一台计算机访问子域时,它根本找不到服务器。当我访问主域时,我看到了计算机。

假设:

  1. 存在 DNS 问题?
  2. 非服务器计算机主机文件中存在错误配置?
  3. 华硕路由器配置错误?

服务器和路由器: 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


【解决方案1】:

通过 bitmerge 归功于一个名叫 Pokey 的家伙。 /etc/hosts 文件条目存在问题。需要显式添加与服务器的网络 IP 关联的每个子域。我使用 ifconfig 来查找服务器的 IP 地址。

例子:

192.0.0.4 container1.hub.local

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多