我在本地网络中使用 Apache 2.4 测试了服务器 (Centos 7)。一切正常,但每次大约 1 小时不活动后,Apache 响应延迟约 4.8 秒。接下来的请求处理非常快 (1-5 毫秒)。
连接后出现延迟(连接 - 1ms,请求发送 - 1ms,等待 TTFB - 4.8s)。无论请求的源类型是什么(html 页面、html +php 或只是图像),都会出现此问题。其他网络应用程序可以正常运行,不会出现延迟。
IPv6 已禁用。在 httpd.conf 中配置的 IP 和端口:
ServerRoot "/etc/httpd"
Listen 192.168.0.100:80
KeepAlive On
MaxKeepAliveRequests 0
KeepAliveTimeout 300
Include conf.modules.d/*.conf
User apache
Group apache
ServerAdmin root@localhost
ServerName 192.168.0.100:80
<Directory />
Options Indexes FollowSymLinks
AllowOverride all
Require all granted
</Directory>
DocumentRoot "/Site"
<Directory "/Site/www">
AllowOverride None
# Allow open access:
Require all granted
</Directory>
<Directory "/Site/www">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
<Files ".ht*">
Require all denied
</Files>
ErrorLog "logs/error_log"
LogLevel warn
<IfModule log_config_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
<IfModule logio_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
</IfModule>
CustomLog "logs/access_log" combined
</IfModule>
<IfModule alias_module>
ScriptAlias /cgi-bin/ "/Site/cgi-bin/"
</IfModule>
<Directory "/Site/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>
<IfModule mime_module>
TypesConfig /etc/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
</IfModule>
AddDefaultCharset UTF-8
<IfModule mime_magic_module>
MIMEMagicFile conf/magic
</IfModule>
EnableSendfile on
IncludeOptional conf.d/*.conf
答案1
单个连接是否会发生这种情况?如果一小时后您从客户端 A 发起连接,客户端 B 是否也会有快速响应?
如果不是,那么它可能与 keepalive 超时有关。如果是,那么它可能与缓存有关
答案2
我做了一些测试,发现延迟只出现在 Windows(Win7)机器(PC 和笔记本电脑)上。Mac、iphone 和 ipad 与服务器配合使用时没有延迟。所有设备都在一个子网中(简单的 DLink 路由器)。延迟与连接类型无关(笔记本电脑通过 wifi 连接,PC 通过有线连接),并且无论浏览器类型如何都会出现延迟。一台 PC 连接时有延迟并启动速度很快,另一台 PC 连接时也有延迟。所以我认为问题出在 Windows 网络设置上,与服务器无关。
更新:问题出在卡巴斯基防病毒软件上。我禁用了网络过滤器,现在一切都正常了,没有延迟。