阿里云ECS服务器本身并没有默认限制上传文件不能超过100MB。你遇到的“上传文件不能超过100M”问题,通常是由于你使用的上传方式或中间组件(如Web服务器、应用框架、浏览器上传工具等)设置了限制。以下是常见原因和解决方法:
? 常见原因及解决方案
1. Nginx 上传限制(最常见)
如果你通过 Nginx 提供 Web 服务,Nginx 默认限制上传大小为 1MB。
解决方法:修改 Nginx 配置
http {
client_max_body_size 200M; # 允许最大200M上传
}
# 或者在 server 块中设置
server {
client_max_body_size 200M;
}
修改后重启 Nginx:
sudo systemctl restart nginx
2. Apache 上传限制
Apache 使用 LimitRequestBody 指令限制上传。
解决方法:修改 Apache 配置
<Directory "/var/www/html">
LimitRequestBody 209715200 # 200MB(单位是字节)
</Directory>
重启 Apache:
sudo systemctl restart apache2 # Ubuntu/Debian
sudo systemctl restart httpd # CentOS/RHEL
3. PHP 上传限制(常见于 PHP 应用)
PHP 默认限制 upload_max_filesize 和 post_max_size 通常为 2M 或 8M。
解决方法:修改 php.ini
upload_max_filesize = 200M
post_max_size = 200M
max_execution_time = 300
max_input_time = 300
memory_limit = 256M
重启 Web 服务后生效。
4. 使用浏览器上传工具(如宝塔、OneManager、Webmin)
很多可视化面板自带上传限制。
解决方法:
- 宝塔面板:右上角“设置” → “上传限制” → 修改为更大值。
- OneManager / 其他工具:检查其配置文件或文档,调整上传限制。
5. 命令行或 SCP 上传(推荐大文件方式)
如果你只是想上传文件到 ECS 服务器,不要通过网页上传,建议使用命令行工具:
✅ 推荐方式:使用 scp 命令
scp /path/to/your/file.zip root@your-ecs-ip:/root/
✅ 使用 rsync
rsync -avz /path/to/file.zip root@your-ecs-ip:/root/
✅ 使用 SFTP 工具(如 FileZilla、WinSCP)
支持大文件断点续传,更稳定。
6. 网络或客户端限制
- 某些浏览器上传组件(如
<input type="file">)在前端限制了大小。 - 检查前端代码或上传脚本是否有
maxFileSize限制。
✅ 推荐最佳实践
| 场景 | 推荐方式 |
|---|---|
| 上传大文件(>100MB) | 使用 scp、rsync 或 SFTP |
| Web 应用上传 | 调整 Nginx + PHP + 应用层限制 |
| 频繁上传 | 搭建 FTP 服务或使用对象存储(如 OSS) |
? 进阶建议:使用阿里云 OSS
对于大文件上传,建议使用 阿里云对象存储 OSS:
- 支持分片上传(支持超大文件)
- 上传稳定、速度快
- 可通过 SDK、命令行、OSS Browser 等工具上传
上传到 OSS 后,再从 ECS 下载:
wget https://your-bucket.oss-cn-beijing.aliyuncs.com/large-file.zip
总结
你遇到的“100M限制”不是ECS本身的限制,而是:
- Web服务器(Nginx/Apache)
- 应用配置(PHP/Node.js)
- 上传工具(面板/浏览器)
✅ 解决方法:
- 检查并修改 Nginx/PHP/Apache 配置
- 使用
scp、rsync或 SFTP 直接上传 - 超大文件建议使用 OSS + 内网下载
如果你告诉我你具体是怎么上传的(比如用什么工具、什么系统、什么服务),我可以给出更精确的解决方案。
CDNK博客