如果我通过 VNC 连接到服务器,我可以通过本地主机从他自己上传大文件 [例如:5MB](使用 wordpress 和一个简单的 php 上传脚本测试)。
但是,如果我尝试从家庭连接(@50kb/s)上传“大”文件(例如 3MB),每次 wordpress 中的连接都会中断约 40 秒。20 秒内,上传栏会出现一些奇怪的移动。我在 40 秒内发现了类似的(未解决的)问题。我认为是同一个问题。
与 AWS 服务器的结果相同!
编辑:尝试通过控制台进行 curl 上传。20 秒后失败(这解释了为什么 wordpress 在 20 秒内状态栏不稳定),错误代码 3(又称:部分上传)。20 秒内处理小文件效果很好。(在我的情况下是 1MB 文件 - 我的上传速度为 50kb/s)。所以我尝试了
curl -m 120 --connect-timeout 120
再次在 20 秒时断开连接,而不是在 120 秒时。那么,这一定是 Apache 的问题吗?
尝试通过 ulimit 查看 apache 用户的操作系统设置。似乎不相关。
ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 15501
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 15501
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
尝试在操作系统级别(Linux)中查找配置问题。加倍到 120(默认 60)
sysctl net.ipv4.tcp_fin_timeout=120 -w
尝试了 .htaccess 中通常建议的内容
php_value upload_max_filesize 30M
php_value post_max_size 30M
php_value max_execution_time 600
php_value max_input_time 600
php_value max_file_uploads 12
php_value max_input_nesting_level 256
php_value display_errors on
<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule>
# Someone had success with that. Not me :(
<IfModule mod_reqtimeout>
RequestReadTimeout body = 20, MinRate = 100
</IfModule>
没有帮助。
- 知道去哪里找吗?20 秒的超时很奇怪。
错误日志很干净!