0

我在 GKE 集群中使用 HAProxy 作为入口控制器。
这是我的配置的样子,对于我想在 X 毫秒内超时的服务:

---
apiVersion: v1
kind: Service
metadata:
  name: dummy-app-service
  annotations:
    haproxy.org/backend-config-snippet: |
      option http-keep-alive
      timeout server 40ms
      timeout client 20ms
      timeout http-keep-alive 20ms
      timeout http-request 40ms  
spec:
  ports:
  - name: app
    targetPort: 8080
    port: 8080
  selector:
    app: dummy-app

我想了解客户端和 http-request 超时之间的区别是什么,哪个优先于另一个。
如果我收到一个请求,它会在 20 毫秒(客户端超时)或 40 毫秒(http 请求超时)吗?

4

1 回答 1

0

最好的答案写在文档timeout http-request中

使用 HTTP 请求超时,无论客户端键入什么速度,如果请求没有及时完成,请求将被中止。当超时到期时,将向客户端发送一个 HTTP 408 响应以通知它问题,并关闭连接。

如果未设置此参数 (timeout http-request ... ),客户端超时仍适用于传入请求的每个块之间。需要在前端设置才能生效,除非前端是TCP模式,这种情况下会使用HTTP后端的超时时间。

于 2021-04-28T20:00:47.400 回答