【问题标题】:Traefik: Access service via local IP address as well as externally (https)?Traefik:通过本地 IP 地址和外部(https)访问服务?
【发布时间】:2018-05-08 20:51:11
【问题描述】:

我设法用我的域 (https://MY-DOMAIN.COM) 设置了一个反向代理,并且 我认为 我读到它也可以访问我的本地网络上的服务(http://192.168.0.5:8123 或 @987654323 @),而不仅仅是通过 https 进行外部访问。

任何人都知道这是否属实,如果是,我将如何设置?

这是我的 docker-compose.yml 代码:

version: '3'

networks:
  proxy:
    external: true

services:
  reverse-proxy:
    container_name: ReverseProxy
    image: traefik
    restart: always
    command: --web --docker
    ports:
      - 8080:8080
      - 80:80
      - 443:443
    networks:
      - proxy
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ~/docker/traefik/traefik.toml:/traefik.toml
      - ~/docker/traefik/acme.json:/acme.json

  homeassistant:
    image: homeassistant/home-assistant
    container_name: home-assistant
    restart: unless-stopped
    networks:
      - proxy
    expose:
      - 8123
    volumes:
     - ~/docker/homeassistant:/config
     - /etc/localtime:/etc/localtime:ro
    labels:
      - "traefik.backend=home-assistant"
      - "traefik.docker.network=proxy"
      - "traefik.frontend.rule=Host:MY-DOMAIN.COM"
      - "traefik.enable=true"
      - "traefik.port=8123"
      - "traefik.default.protocol=http"


这是我的 traefik.toml 代码:

debug = false

logLevel = "ERROR"
defaultEntryPoints = ["https","http"]

[entryPoints]
  [entryPoints.http]
  address = ":80"
    [entryPoints.http.redirect]
    entryPoint = "https"
  [entryPoints.https]
  address = ":443"
  [entryPoints.https.tls]

[retry]

[web]
address = ":8080"

[docker]
endpoint = "unix:///var/run/docker.sock"
domain = "MY-DOMAIN.COM"
watch = true
exposedbydefault = false

[acme]
email = "MY-EMAIL-ADDRESS"
storage = "acme.json"
entryPoint = "https"
OnHostRule = true
[acme.httpChallenge]
entryPoint = "http"

[[acme.domains]]
  main = "MY-DOMAIN.COM"

【问题讨论】:

    标签: docker docker-compose traefik


    【解决方案1】:

    在您的 homeassistant docker-compose 配置中更改以下内容以允许您的主机将 8123 映射到容器。

    来自:

    expose:
      - 8123
    

    到:

    ports:
      - "8123:8123"
    

    来源:What is the difference between docker-compose ports vs expose

    【讨论】:

    • 您不想映射静态端口。首先,您不希望它们可访问,其次您可以扩展,因为副本将由于主机上的端口被占用而失败。 traefik 的全部意义在于使用动态端口进行服务发现。
    猜你喜欢
    • 1970-01-01
    • 2018-03-03
    • 1970-01-01
    • 2019-12-30
    • 2022-06-30
    • 1970-01-01
    • 2015-04-23
    • 2018-10-31
    • 2019-01-12
    相关资源
    最近更新 更多