上传到 Apache 约 20 秒后失败(超时),但在本地可以工作

上传到 Apache 约 20 秒后失败(超时),但在本地可以工作

如果我通过 VNC 连接到服务器,我可以通过本地主机从他自己上传大文件 [例如:5MB](使用 wordpress 和一个简单的 php 上传脚本测试)。

但是,如果我尝试从家庭连接(@50kb/s)上传“大”文件(例如 3MB),每次 wordpress 中的连接都会中断约 40 秒。20 秒内,上传栏会出现一些奇怪的移动。我在 40 秒内发现了类似的(未解决的)问题。我认为是同一个问题。

  1. 卷曲上传
  2. 权限组(禁用该模块-相同的超时)

与 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>

没有帮助。

  1. 知道去哪里找吗?20 秒的超时很奇怪。

错误日志很干净!

相关内容