我正在设置一个带有 php-fpm 和 (d)dos deflate 的 nginx 网络服务器来禁止攻击。
现在,我的服务器根本没有流量,因为我正在测试。
使用此命令,我可以看到谁连接到了我的服务器,以及他们打开了多少个连接:
netstat -ntu | awk'{print $5}'| cut -d: -f1 | sort | uniq -c | sort -n
在测试期间,我注意到当我加载测试脚本时,它基本上<?php phpinfo(); ?>
会启动 3 个连接。我猜 1 个用于 HTML,2 个用于该页面上的 2 张图片。到目前为止一切都很好...
但我注意到这 3 个连接关闭花了一分钟多的时间。我继续运行上述 netstat 命令,看看这 3 个外部连接是否会关闭。
我的 nginx.conf 的保持活动超时时间为 4。
keepalive_timeout 4;
该连接是通过默认设置的 Chrome 浏览器建立的。
这些连接为什么保持打开状态这么久?这是正常的吗?还有,有什么方法可以更快地关闭它们吗?
答案1
您可以使用目录 /proc/sys/net/ipv4/ 上的文件 tcp_keepalive_time 来增加或减少 TCP 套接字的超时时间。
默认超时值为 7200(2 小时)。
例如,要更改为 1200 秒,请发出以下命令:
#echo 1200 > /proc/sys/net/ipv4/tcp_keepalive_time