簡體   English   中英

docker-compose 上的 Traefik 間歇性 404

[英]Traefik intermittent 404 on docker-compose

我在 traefik 反向代理后面運行一堆服務。 我已經測試了這些服務,它們工作得很好。 問題是當涉及到 traefik 時,無論我與它們交互時都會出現間歇性 404 錯誤。

其中一項服務公開了一個漂亮而簡單的 REST api。 消費代碼必須重試所有請求。 這是可控的。

其中一項服務公開了一個前端:如果我想使用前端,我必須不斷刷新頁面。 這是一個真正令人敬畏的用戶體驗。

以下是我的撰寫文件中的一些示例:

version: "2.1"

services:
  reverse-proxy:
    image: traefik:v2.2
    command:
      - "--api.insecure=true"
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
      - "--entrypoints.web.address=:80"
    ports:
      - "8081:80"
      - "8082:8080"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock


  api_service:
    image: its_just_a_flask_app

    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.configrouter1.rule=PathPrefix(`/config_backend/`) && (Method(`GET`) || Method(`POST`))"
      - "traefik.http.routers.configrouter1.middlewares=config-backend-auth@docker"
      - "traefik.http.middlewares.config-backend-auth.basicauth.usersfile=/config/usersfile"
      

  webserver:
    image: puckel/docker-airflow:with_a_few_lil_tweaks
    restart: always
    depends_on:
      - postgres # these exist and work fine
      - redis
    environment:
      - LOAD_EX=n
      - FERNET_KEY=stuff=
      - EXECUTOR=Celery
      - AIRFLOW__WEBSERVER__BASE_URL=http://webserver/airflow

    volumes:
      - ../orchistrator/dags/:/usr/local/airflow/dags
      - ./requirements.txt:/requirements.txt

    command: webserver
    healthcheck:
      test: ["CMD-SHELL", "[ -f /usr/local/airflow/airflow-webserver.pid ]"]
      interval: 30s
      timeout: 30s
      retries: 3

    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.aurflowrouter.rule=PathPrefix(`/airflow`)"
      - "traefik.http.routers.aurflowrouter.middlewares=airflow-basic-auth@docker"
      - "traefik.http.middlewares.airflow-basic-auth.basicauth.usersfile=/config/usersfile"
      - traefik.http.services.my-service.loadbalancer.server.port=8080

  • 如您所見,這兩個都使用基本身份驗證。 刪除身份驗證無效
  • 刪除網絡服務器的健康檢查沒有效果
  • 在對api_service進行api調用時,第一次調用經常失敗,第二次調用總是成功
  • 訪問 airflow 前端時:第一個頁面加載失敗,之后成功。
  • airflow 前端有一個按鈕可以觸發 POST。 POST 返回一個 302 Found,然后重定向總是首先給我一個 404
  • 有時 web 前端加載,但它所依賴的 static 資源無法加載,從而導致網站丑陋且無法使用。 所以我發現自己經常刷新頁面

我在這里不知所措。 任何幫助將不勝感激。

我嘗試過的 Traefik 標簽:

到目前為止,我收到或發現的唯一建議是關於使用舊標簽或新標簽,這就是我發現的

image: traefik:v2.2
image: traefik:v2.2.1
image: traefik:v2.2.5
image: traefik:latest

昨天拉traefik:latest后我遇到了類似的問題。 剛剛注意到圖像今天更新了,新的拉動解決了我的問題。

原來這是v2.2.2上的一個錯誤。 請參閱此處了解更多信息。 例如,使用v2.2.5來擺脫這個問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM