首页 > 解决方案 > Traefik 配置未使用 AT&T 连接到手机

问题描述

我最近开始使用 Traefik 为 ssl 和反向代理部署我的网站。除了专门使用 AT&T 数据计划的手机似乎无法成功连接到我的网站外,一切似乎都进展顺利。当他们无法连接时,我没有收到任何错误消息,并且任何其他互联网服务提供商都没有已知问题,无论是在数据还是 wifi 上。我什至不知道从哪里开始解决这样的问题。我绝不是网络专家,并且不存在具有类似问题的谷歌搜索结果。下面发布的是我的 Traefik 相关配置文件,希望它们可以为我的配置错误提供一个有用的窗口。任何帮助深表感谢。谢谢你。

码头工人-compose.yml

  traefik:
    build:
      context: .
      dockerfile: ./compose/production/traefik/Dockerfile
    image: app_production_traefik
    depends_on:
      - django
    volumes:
      - production_traefik:/etc/traefik/acme:z
    ports:
      - "0.0.0.0:80:80"
      - "0.0.0.0:443:443"

dockerfile

FROM traefik:v2.2.11 
# I have tried with the updated version and got the same result
RUN mkdir -p /etc/traefik/acme \
  && touch /etc/traefik/acme/acme.json \
  && chmod 600 /etc/traefik/acme/acme.json
COPY ./compose/production/traefik/traefik.yml /etc/traefik

traefik.yml

log:
  level: INFO

entryPoints:
  web:
    # http
    address: ":80"

  web-secure:
    # https
    address: ":443"

certificatesResolvers:
  letsencrypt:
    # https://docs.traefik.io/master/https/acme/#lets-encrypt
    acme:
      email: "me@email.com"
      storage: /etc/traefik/acme/acme.json
      # https://docs.traefik.io/master/https/acme/#httpchallenge
      httpChallenge:
        entryPoint: web

http:
  routers:
    web-router:
      rule: "Host(`mysite.com`) || Host(`www.mysite.com`)"
  
      entryPoints:
        - web
      middlewares:
        - redirect
        - csrf
      service: django

    web-secure-router:
      rule: "Host(`mysite.com`) || Host(`www.mysite.com`)"
  
      entryPoints:
        - web-secure
      middlewares:
        - csrf
      service: django
      tls:
        # https://docs.traefik.io/master/routing/routers/#certresolver
        certResolver: letsencrypt

  middlewares:
    redirect:
      # https://docs.traefik.io/master/middlewares/redirectscheme/
      redirectScheme:
        scheme: https
        permanent: true
    csrf:
      # https://docs.traefik.io/master/middlewares/headers/#hostsproxyheaders
      # https://docs.djangoproject.com/en/dev/ref/csrf/#ajax
      headers:
        hostsProxyHeaders: ["X-CSRFToken"]

  services:
    django:
      loadBalancer:
        servers:
          - url: http://django:5000

providers:
  # https://docs.traefik.io/master/providers/file/
  file:
    filename: /etc/traefik/traefik.yml
    watch: true

更新

我配置了如下所示的日志 - 每次用户成功访问该站点时,我都会获取日志更新,但是当我再次尝试使用 AT&T 电话时,它没有记录任何内容,并且电话没有成功连接到该站点。在 Chrome 上,我只看到一条消息“无法访问此站点,example.com 意外关闭了连接”。

标签: dockerservertraefikattcookiecutter-django

解决方案


第一步是使用以下配置将 Traefik 置于调试模式

log:
  level: DEBUG

accessLog: {}

有关 accessLog 的更多信息,请访问: https ://doc.traefik.io/traefik/observability/access-logs/

这应该会向您显示所有传入的请求,entryPoints并且您可以在原始问题中从那里分享更多信息。


推荐阅读