特使代理:503服务不可用 [英] Envoy proxy: 503 Service Unavailable

查看:22
本文介绍了特使代理:503服务不可用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

服务状态:

客户端(nuxt)在http://localhost:3000上启动,并且客户端发送 请求http://localhost:8080

服务器(django)正在0.0.0.0:50051上运行。

同时docker已启动

78496fef541f   5f9773709483      "/docker-entrypoint.…"   29 minutes
 ago   Up 29 minutes   0.0.0.0:8080->8080/tcp, :::8080-8080/tcp,
 10000/tcp   envoy

envoy.yaml配置:

我将envoy.yaml文件配置如下:

static_resources:
  listeners:
    - name: listener_0
      address:
        socket_address: { address: 0.0.0.0, port_value: 8080 }
      filter_chains:
        - filters:
            - name: envoy.filters.network.http_connection_manager
              typed_config:
                "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
                codec_type: auto
                stat_prefix: ingress_http
                route_config:
                  name: local_route
                  virtual_hosts:
                    - name: local_service
                      domains: ["*"]
                      routes:
                        - match: { prefix: "/" }
                          route:
                            cluster: greeter_service
                            max_stream_duration:
                              grpc_timeout_header_max: 0s
                      cors:
                        allow_origin_string_match:
                          - prefix: "*"
                        allow_methods: GET, PUT, DELETE, POST, OPTIONS
                        allow_headers: keep-alive,user-agent,cache-control,content-type,content-transfer-encoding,custom-header-1,x-accept-content-transfer-encoding,x-accept-response-streaming,x-user-agent,x-grpc-web,grpc-timeout
                        max_age: "1728000"
                        expose_headers: custom-header-1,grpc-status,grpc-message
                http_filters:
                  - name: envoy.filters.http.grpc_web
                  - name: envoy.filters.http.cors
                  - name: envoy.filters.http.router
  clusters:
    - name: greeter_service
      connect_timeout: 0.25s
      type: logical_dns
      http2_protocol_options: {}
      lb_policy: round_robin
      load_assignment:
        cluster_name: cluster_0
        endpoints:
          - lb_endpoints:
              - endpoint:
                  address:
                    socket_address:
                      address: 0.0.0.0
                      port_value: 50051

错误:

但出现以下错误,似乎请求未到达Django0.0.0.0:50051服务器。

503服务不可用

GRPC-消息:之前的上游连接错误或断开/重置 标题。重置原因:连接失败、传输失败原因: 延迟连接错误:111

推荐答案

请参阅我的long answer here。我已解决此问题。


>;简短回答:

我需要一个代理来接收来自服务器的请求。所以我使用了‍envoy proxy。通过这种方式,nginx从浏览器接收请求,然后将其发送到一个端口(例如5000)。另一方面,envoy侦听端口5,000,然后将请求发送到在端口50051上运行的服务器。

这是我设计gRPC连接跟踪的方式。

这篇关于特使代理:503服务不可用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆