如果 client -> nginx 配置成长连接, keep-alive
nginx->server 不配置成长链接,
那么 整个请求时长链接的吗?
因为 tornado 好像是不支持长连接的
感觉我 nginx 好多不会呀
1
ericls 2021-04-07 12:33:27 +08:00 via iPhone 1
在 nginx 那一层应该是复用的 你试试就知道了
实际上一个 tcp 经过那么多个 hop 实际情况很难控制 |
2
opengps 2021-04-07 12:46:11 +08:00 1
应该仅仅是外层 client -> nginx 是长连接复用,内部 nginx->server 依然是有请求就单独转发一次
|
3
iConnect 2021-04-07 13:11:32 +08:00 via Android
客户端你是用 websocket 吗?
|
4
iyaozhen 2021-04-07 13:47:56 +08:00 1
那么 整个请求时长链接的吗?
显然不是啊 tornado 我看默认就支持呀 https://www.tornadoweb.org/en/stable/httpserver.html?highlight=keep%20alive#http-server nginx 需要这样配置: http://nginx.org/en/docs/http/ngx_http_upstream_module.html#keepalive |
5
ChoateYao 2021-04-07 13:58:50 +08:00 2
HTTP keepalive 还是 TCP keepalive 这是两种不同的概念,TCP keepalive 没认真了解过。
但是 HTTP keepalive 是指复用 TCP 连接,当客户端跟服务端建立起 TCP 通道之后,请求出第一个 HTTP,如果 HTTP 没有指明 keepalive,则得到响应之后服务端会马上把 TCP 断开;否则可以复用 TCP 通道,无需创建多个 TCP 通道,这样子就能避免在一定时间内发起 HTTP 请求,因为创建多个 TCP 通道导致性能性能损耗。 |
6
wakzz 2021-04-07 14:00:36 +08:00 1
nginx -> server 默认的 http 负载均衡是 TCP 短连接,需要一些额外的配置才能设置成 HTTP 长连接。
|
9
wakzz 2021-04-07 15:18:12 +08:00 2
@chenqh 四楼的第二个链接就是文档,修改方式就是 upstream 添加 keepalive,以及 location 添加 proxy_http_version 1.1 和 proxy_set_header Connection ""就行。注意是这几个同时配置后才起效,缺一个都不行。
|
10
holinhot 2021-04-07 19:41:54 +08:00
题主说的回源长连接
|
11
abccccabc 2021-04-08 09:43:24 +08:00
楼主,9 楼的方法可行。
|