Niedawno zacząłem wdrażać moje witryny za pomocą TraeFik do proxy SSL i odwrotnej. Wszystko wydawało się, że idzie dobrze z wyjątkiem telefonów specjalnie za pomocą planów danych AT & T, nie wydają się być w stanie pomyślnie połączyć się z moimi witrynami. Nie otrzymuję komunikatów o błędach, gdy nie łączą się i nie ma znanych problemów z innymi dostawcami usług internetowych, niezależnie od tego, czy są danymi, czy WIFI. Nie mam pojęcia, gdzie nawet zacząć od tego problemu. W żadnym wypadku nie jestem guru sieciowy, a wyniki wyszukiwania Google o podobnych problemach nie istnieją. Opublikowany Poniżej znajdują się moje pliki konfiguracyjne My TraeFik, miejmy nadzieję, że mogą zapewnić użyteczne okno w moich błędach konfiguracji. Każda pomoc jest bardzo doceniana. Dziękuję Ci.

Docker-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

Aktualizacja

Skonfigurowałem dziennik, jak pokazałem poniżej - otrzymuję aktualizacje dziennika za każdym razem, gdy użytkownik pomyślnie osiągnie witrynę, ale kiedy spróbowałem ponownie z telefonem AT & T, nie zalogował się, a telefon nie pomyślnie połączył się z witryną. Na Chrome, wystarczy zobaczyć wiadomość, która czyta "Nie można dotrzeć do tej strony, example.com niespodziewanie zamknął połączenie".

1
Julian 12 luty 2021, 02:07

1 odpowiedź

Najlepsza odpowiedź

Pierwszym krokiem jest wprowadzenie TraeFik do trybu debugowania z następującą konfiguracją

log:
  level: DEBUG

accessLog: {}

Więcej o AccessLog pod adresem: https://doc.traefik.io/traefik/observiled/access-logs/ .

Powinno to pokazać wszystkie prośby, które przychodzą w entryPoints i możesz udostępnić więcej informacji stamtąd w pierwotnym pytaniu.

1
DarthHTTP 23 luty 2021, 16:36