IP-авторизация прокси-сервера Traefik

У меня есть traefik в docker-compose:

 version: '3'
    networks:
      proxy:
        driver: bridge
    services:
      traefik:
        container_name: traefik
        image: traefik:v1.7.9
        command: --api --docker
        ports:
          - "80:80"
          - "443:443"
          - "8080:8080"
        volumes:
          - /var/run/docker.sock:/var/run/docker.sock
          - ./traefik.toml:/etc/traefik/traefik.toml
          - ./acme.json:/acme.json
         networks: 
          - proxy

Также есть nginx под mydomain.com, и я хочу, чтобы к нему мог подключаться только мой ip:

nginx:
    build: ./nginx
    networks:
      - backend
      - traefik_proxy
    restart: always
    labels:
      traefik.enable: "true"
      traefik.port: "80"
      traefik.frontend.headers.allowedHosts: "1.2.3.4" # MyIp
      traefik.frontend.rule: "Host:mysite.com,www.mysite.com"

Когда я захожу на mysite.com, я получаю ошибку Bad Host, и IP в заголовках - это IP моего сервера, а не мой настоящий IP. P.S Docker в режиме роя, но nginx и traefik собираются с использованием локального docker-compose


person Fominykh Maxim    schedule 29.03.2019    source источник


Ответы (1)


Решение состоит в том, чтобы добавить в nginx docker-compose следующие директивы:

traefik.frontend.whiteList.sourceRange: "1.2.3.4" # my Ip
traefik.frontend.passHostHeader: true
traefik.frontend.whiteList.useXForwardedFor: "true"
person Fominykh Maxim    schedule 29.03.2019