微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何修复球童的状态代码超出反向代理的容忍度?

如何解决如何修复球童的状态代码超出反向代理的容忍度?

我有这个index.js

const express = require('express')

const APP_NO = process.env.APP_NO || "node-app1"
const PORT = process.env.PORT || 8000

const app = express()

app.get('/',async (req,res) => {
  console.log(req)
  res.json({app: APP_NO,req})
})

app.listen(PORT,() => {
  console.log(`${APP_NO} listening at:`,PORT)
})

这个 Caddyfile 用于具有负载平衡的反向代理:

:2021

encode gzip zstd

reverse_proxy node-app1:8000 node-app2:8080 {
  lb_policy random_choose 2
}

这个 docker-compose.yaml 在本地运行:

version: "3.7"
services:
  node-app1:
    image: node-app:latest
    container_name: node-app1
    restart: unless-stopped
    environment:
      - NODE_ENV=production
      - PORT=8000
      - APP_NO=node-app1
  node-app2:
    image: node-app:latest
    container_name: node-app2
    restart: unless-stopped
    environment:
      - NODE_ENV=production
      - PORT=8080
      - APP_NO=node-app2
  caddy:
    image: docker.io/caddy/caddy:alpine
    container_name: caddy-service
    restart: unless-stopped
    ports:
      - 8000:80
      - 8080:443
    volumes:
      - ${PWD}/Caddyfile:/etc/caddy/Caddyfile
    depends_on:
      - node-app1
      - node-app2

docker-compose 运行成功,但我无法在 http://localhost:8000 访问 API。球童日志:

...
{"level":"info","ts":1626890003.6812198,"logger":"http.handlers.reverse_proxy.health_checker.active","msg":"status code out of tolerances","status_code":404,"host":"node-app1:8000"}
{"level":"info","ts":1626890003.6812427,"host":"node-app2:8080"}
...

请帮帮我,我做错了什么?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。