首先明确可道云没有对上传下载做任何限制,速度快慢和网络环境有关。可道云是基于http上传,所以和其他http上传速度基本一致;可以对比其他web系统或网站说附件上传速度。同其他例如webdav、FTP、QQ传输等软件底层协议不一样;传输速度也会不一样。
传输速度受三方面影响:
可道云为了能在更多的服务器环境下良好运行,各方面配置是以兼容性为主,可能并不是最优配置。性能调优可以参考配置如下。
主要是由于服务器限制了上传大小,或超时时间太短引起; 推荐如下配置: 推荐环境: centos7 + nginx + mysql5.6 + php7.3 + redis;
client_max_body_size 500M;
client_header_timeout 3600s;
client_body_timeout 3600s;
fastcgi_connect_timeout 3600s;
fastcgi_send_timeout 3600s;
fastcgi_read_timeout 3600s;
# 其他webserver相应修改类似限制;如apache需要修改LimitRequestBody
# 修改完成重启nginx生效: service nginx reload
post_max_size = 500M;
upload_max_filesize = 500M;
memory_limit = 500M;
max_execution_time = 3600;
max_input_time = 3600;
# php中设置set_time_limit无效(safe_mode=on时php代码中修改超时无效) php.ini
safe_mode = off
# php-fpm.conf 配置优化(超时时间; 4G内存推荐如下子进程配置)
request_terminate_timeout 3600
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 10
pm.max_spare_servers = 30
pm.max_requests = 500
设置方法:管理员登陆可道云进入后台 系统设置---基础设置---上传/下载
大文件上传时切分成片进行并发上传,从而实现加速和断点续传, 推荐5M; 此值必须小于下述配置;否则会引起上传异常(上传失败,进度回退) php.ini: post_max_size, upload_max_filesize ==> 5M nginx: client_max_body_size ==> 5M;
在nginx.conf中添加如下代码,参考,更多nginx优化
#使用共享内存做临时存贮提高上传速度,共享内存需要大一些,否则上传大文件内存不足
client_body_in_file_only clean;
client_body_temp_path /dev/shm 1 2;
fastcgi_param REQUEST_BODY_FILE $request_body_file;
系统管理员可以访问服务器任意资源,如果不想这样,可以开启php防跨站,指定某个站点open_basedir,只能访问某个目录。可以有如下几种方式设置:更多请参考
# 1)php.ini 中配置
open_basedir = /home/wwwroot/:/tmp/
# 2)nginx中配置 fastcgi.conf
fastcgi_param PHP_VALUE "open_basedir=$document_root:/tmp/";
# 3)apache 的 httpd.conf 中Directory配置
"php_admin_value open_basedir none" #关闭
php_admin_value open_basedir "/home/wwwroot/:/tmp/:/var/tmp/:/proc/"
# 4).user.ini 站点根目录
open_basedir = /home/wwwroot/:/tmp/
设置方法:管理员登陆可道云:右上角菜单——系统设置——安全设置——开启登陆验证码
对于访问量比较大的站点,可以将可道云的静态资源迁移到CDN。步骤如下: