Traefik v2反向代理到Docker外部的本地服务器

巴杰拉

我有一个用Python编写的简单服务器,它侦听专用网络(HTTP通信)中的端口8000。现在需要切换到HTTPS通信,并且向服务器发送请求的每个客户端都应该使用自己的证书/密钥对进行身份验证。

我已决定将Traefik v2用于此工作。请参见框图。

Traefik在IP为192.168.56.101的主机上作为Docker映像运行。首先,我只想将来自客户端的HTTP请求转发到Traefik,然后转发到在8000端口上的Docker外部运行的Python服务器。当转发正常运行时,我将添加TLS功能。

但是,我不知道如何配置Traefik以将代理从ie反向192.168.56.101/notify?wrn=1转换到Python服务器127.0.0.1:8000/notify?wrn=1

当我尝试将上述请求发送到服务器(curl "192.168.56.101/notify?wrn=1")时,我得到“ Bad Gateway ”作为答案。我在这里想念什么?这是我第一次接触Docker和反向代理/ Traefik。我相信这与端口有关,但我无法弄清楚。

这是我的Traefik配置:

  • docker-compose.yml
version: "3.3"

services:
  traefik:
    image: "traefik:v2.1"
    container_name: "traefik"
    hostname: "traefik"
    ports:
      - "80:80"
      - "8080:8080"
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
      - "./traefik.yml:/traefik.yml:ro"
  • traefik.yml
## STATIC CONFIGURATION
log:
  level: INFO

api:
  insecure: true
  dashboard: true

entryPoints:
  web:
    address: ":80"

providers:
  docker:
    watch: true
    endpoint: "unix:///var/run/docker.sock"
  file:
    filename: "traefik.yml"


## DYNAMIC CONFIGURATION
http:
  routers:
    to-local-ip:
      rule: "Host(`192.168.56.101`)"
      service: to-local-ip
      entryPoints:
        - web

  services:
    to-local-ip:
      loadBalancer:
        servers:
          - url: "http://127.0.0.1:8000"
阿尔·威尔·希哈德

首先,127.0.0.1将解析为traefik容器,而不是docker主机。您需要提供节点的私有IP,并且需要从traefik容器进行访问。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章