我在 EC2 实例上遇到了问题。尝试上传文件时,我遇到了不同的行为:
- 文件大小约1.5mb:文件正确发送到服务器并由后端处理
- 文件大小约 2mb:
408 Timeout
- 文件大小大于 2mb :上传在大约 23 秒时冻结,我
ERR:CONNECTION_RESET
在控制台中收到一条消息
堆 :
- EC2 实例(不使用任何 ELB)
Docker 具有以下内容:
- httpd(2.4+)
- 代理 php-fpm (php7+)
- mysql
- redis(尚未使用)
我尝试了以下方法:
- 增加暂停至 120,保持活动状态并增加了KeepAlive 超时在 Apache 中为 120
- 增加限制请求主体和LimitXMLRequestBody至 25000000
- 在 apache 中调用 php-fpm 代理时的指令
ProxySet connectiontimeout=120 timeout=120
中添加Proxy
pm.process_idle_timeout = 120s
在 php-fpm conf 文件中设置- 增加了 php.ini 中所有可能的超时和文件大小参数
- 重建了 100 多次 docker stack,并重启了无数次实例
当然,这在本地运行良好,但在 EC2 实例上却不行。
有人有什么想法吗?提前谢谢
答案1
最后通过在 apache 中添加以下行解决了该问题:
RequestReadTimeout handshake=5 header=10 body=120
指定请求不同状态下的超时时间