簡體   English   中英

嘗試將 Traefik 設置為 node.js 和 nginx 的反向代理

[英]Trying to set up Traefik as a reverse proxy for node.js and nginx

我正在嘗試將 Traefik 設置為一個簡單的 Node.js 微服務的反向代理,由 Angular 前端調用,該微服務將被轉換為 javascript、css 和 html 並在 nginx 上運行。 現在,我正在嘗試讓 Node.js 在端口 3000 上進行內部偵聽,並且可以從外部 traefik 的公開端點上訪問。

我可以訪問儀表板和 whoami 示例服務,但不能訪問我的 Node.js 微服務中定義的端點。 對於與 PathPrefix 匹配的端點,我得到“Bad Gateway”。 如果我嘗試訪問與模式不匹配的端點,我會收到 404“找不到頁面”,所以我認為我正確設置了 PathPrefix,我只是沒有設置服務和/或后端與前端配合。

在 Traefik 之外調用時,我的微服務運行良好。 我已經從 Node.js 腳本中去除了對證書和 SSL/TLS 的處理,以便 Traefik 可以處理那部分。 我非常有信心這部分也在工作。

如果您訪問“/”,我的 Node.js 會打印“Hello, world”,如果您訪問 /v1/api/authorize”,它會真正工作。同樣,只有作為獨立的 node.js 應用程序運行,而不是作為服務運行在 docker 服務堆棧中。

我錯過了什么? 是什么導致了“Bad Gateway”錯誤? 我有一種感覺,這將是一個簡單的解決方法,這對於 Traefik 來說似乎是一個簡單的用例。

我使用的是 Node.js 10 和 Traefik 2.1.0。

version: "3.3"

services:
  reverse-proxy:
    image: "traefik:latest"
    command:
      - --entrypoints.web.address=:80
      - --entrypoints.web-secure.address=:443
      - --providers.docker=true
      - --api.insecure
      - --providers.file.directory=/configuration/
      - --providers.file.watch=true
      - --log.level=DEBUG
    ports:
      - "80:80"
      - "8080:8080"
      - "443:443"
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
      - "/home/cliffm/dev/traefik/configuration/:/configuration/"

  auth-micro-svc:
    image: "auth-micro-svc:latest"
    labels:
      - traefik.port=3000
      - "traefik.http.routers.my-app.rule=Path(`/`)"
      - "traefik.http.routers.my-app.rule=PathPrefix(`/v1/api/`)"
      - "traefik.http.routers.my-app.tls=true"

  whoami:
    image: containous/whoami:latest

  redis:
    image: redis:latest
    ports:
      - "6379:6379"

聚會遲到了,但至少,您在這里覆蓋了配置:

- "traefik.http.routers.my-app.rule=Path(`/`)"
- "traefik.http.routers.my-app.rule=PathPrefix(`/v1/api/`)"

第二行覆蓋底線,因此第一行基本上被忽略。 即使它適用於這兩個規則,它們也是排他性的。 Path( / ) 表示明確的 / 沒有后綴,所以 /bla 不會匹配,即使 /v1/api 匹配第二條規則,也不會匹配

對於多個規則,您可以使用這種方法:

- "traefik.http.routers.my-app.rule=Host(`subdomain.yourdomain.com`) && PathPrefix(`/v1/api`)"

暫無
暫無

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

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