欢迎光临
我们一直在努力

Nginx TCP Fast Open Issue

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

 

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

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

 

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

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

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

 

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

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

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

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

 

  1. $grep '^TcpExt:' /proc/net/netstat | cut -d ' ' -f 87-92 | column -t
  2. TCPOFOMerge TCPChallengeACK TCPSYNChallenge TCPFastOpenActive TCPFastOpenActiveFail TCPFastOpenPassive
  3. 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.

总结

以上是编程之家为你收集整理的Nginx TCP Fast Open Issue全部内容,希望文章能够帮你解决Nginx TCP Fast Open Issue所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

赞(0) 打赏

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏