加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

Nginx TCP Fast Open Issue

发布时间:2020-12-13 21:07:43 所属栏目:Nginx 来源:网络整理
导读:我在我的一台服务器上配置了Nginx和Apache. nginx服务器在端口81上侦听端口80和Apache.Nginx用作反向代理.在nginx中,我配置了TCP Fast Open: server { listen 107.6.155.74 fastopen=50; server_name servtest.com www.servtest.com; 服务器本身也启用了TCP

我在我的一台服务器上配置了Nginx和Apache. nginx服务器在端口81上侦听端口80和Apache.Nginx用作反向代理.在nginx中,我配置了TCP Fast Open:

server {
    listen 107.6.155.74 fastopen=50;
    server_name servtest.com www.servtest.com;

服务器本身也启用了TCP Fast Open:

root@server:~/projects/nginx# cat /proc/sys/net/ipv4/tcp_fastopen
3

为了测试这是否有效,我在运行Ubuntu的PC上配置Chrome以使用TCP Fast Open(chrome:// flags页面).客户端上的tcp_fastopen设置设置为1.

在服务器上,我使用以下grep来查明是否使用了TCP Fast Open:

grep '^TcpExt:' /proc/net/netstat | cut -d ' ' -f 87-92  | column -t
TCPOFOMerge  TCPChallengeACK  TCPSYNChallenge  TCPFastOpenActive  TCPFastOpenPassive  TCPFastOpenPassiveFail
0            2                2                0                  0                   0

我相信TCPFastOpenActive和/或TCPFastOpenPassive计数器不应该是“0”如果这工作.任何想法如何实际找出是否使用TCP Fast Open并按预期工作?如果我需要提供更多信息,请告诉我.

最佳答案
我在https://github.com/yuryu/tfoecho使用TCP快速开放测试代码完成了一些测试

使用测试代码时,我的计数TCPFastOpenPassive会上升.

$grep '^TcpExt:' /proc/net/netstat | cut -d ' ' -f 87-92  | column -t
TCPOFOMerge  TCPChallengeACK  TCPSYNChallenge  TCPFastOpenActive  TCPFastOpenActiveFail  TCPFastOpenPassive
1000         56217            1316             0                  0                      2041

所以我认为你的分析方法是正确的.

运行wireshark,您可以清楚地看到TCP选项下的Fast Open Cookie.

我使用Chromium和Nginx测试了相同的一对机器.

铬版本:

Version 55.0.2883.75 built on Debian stretch/sid,running on Debian stretch/sid (64-bit)

wireshark痕迹中没有快速打开的cookie.即使在Chromium中启用了快速打开选项.所以我怀疑问题在于Chromium.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读