前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP上传下载配置优化

PHP上传下载配置优化

作者头像
CiiLii西里网
发布2023-04-18 15:44:08
7380
发布2023-04-18 15:44:08
举报
文章被收录于专栏:ECS服务器

一、上传下载速度优化

首先明确可道云没有对上传下载做任何限制,速度快慢和网络环境有关。可道云是基于http上传,所以和其他http上传速度基本一致;可以对比其他web系统或网站说附件上传速度。同其他例如webdav、FTP、QQ传输等软件底层协议不一样;传输速度也会不一样。

传输速度受三方面影响:

  1. 本机客户端:网卡、连接方式(有线、无线)、本机磁盘IO负载情况;
  2. 网络环境:网络带宽、wifi还是网线等造成的影响;网络环境复杂、或使用人多时路由器或交换机处理速度也都会是瓶颈之一。
  3. 服务器:受服务器负载、磁盘IO、服务器网络带宽等影响。同时受并发影响;比如20M上行带宽,10个人同时在上传或下载,那么每个人平均就是2M/s

可道云为了能在更多的服务器环境下良好运行,各方面配置是以兼容性为主,可能并不是最优配置。性能调优可以参考配置如下。

主要是由于服务器限制了上传大小,或超时时间太短引起; 推荐如下配置: 推荐环境: centos7 + nginx + mysql5.6 + php7.3 + redis;

1. 修改nginx的配置文件
代码语言:javascript
复制
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
2. 修改php配置文件php.ini;
代码语言:javascript
复制
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
  • 注意:
    • 如果某一类例如exe文件不能上传,其他文件可上传, 一般是服务器(杀毒软件或防火墙)做了拦截误判,取消相应软件上拦截即可;
    • 超时时间设置; 如果经常有超大文件上传,php和nginx超时时间需要设置大一些;
    • 分片上传: 一个大文件切分成多个分片上传,所有片上传完成后服务器自动合并;一个分片上传失败只需要重传该分片即可;
    • 分片大小设置: 管理员登陆后台--基础设置--上传下载; 调整上传分片大小; 必须小于php.ini和nginx的限制;
    • 修改了php或nginx配置文件后,需要重启php-fpm和nginx;
    • 上传文件限制及超时时间可以根据自己需求设置; 超时时间需大于文件上传下载的时间,否则超时会导致操作失败;
3.修改可道云配置

设置方法:管理员登陆可道云进入后台 系统设置---基础设置---上传/下载

  1. 设置分片大小: 推荐5M

大文件上传时切分成片进行并发上传,从而实现加速和断点续传, 推荐5M; 此值必须小于下述配置;否则会引起上传异常(上传失败,进度回退) php.ini: post_max_size, upload_max_filesize ==> 5M nginx: client_max_body_size ==> 5M;

  1. 上传并发数量; 推荐15个并发;
4.nginx + php-fpm上传优化

在nginx.conf中添加如下代码,参考,更多nginx优化

代码语言:javascript
复制
#使用共享内存做临时存贮提高上传速度,共享内存需要大一些,否则上传大文件内存不足
client_body_in_file_only clean;
client_body_temp_path /dev/shm 1 2;
fastcgi_param  REQUEST_BODY_FILE  $request_body_file;

二、系统安全优化

1.开启防跨站

系统管理员可以访问服务器任意资源,如果不想这样,可以开启php防跨站,指定某个站点open_basedir,只能访问某个目录。可以有如下几种方式设置:更多请参考

代码语言:javascript
复制
# 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/
2.开启登陆验证码

设置方法:管理员登陆可道云:右上角菜单——系统设置——安全设置——开启登陆验证码

3. 其他服务器运维优化
  • 建议全站使用https,避免传输中数据被窃听。
  • 设置服务器防火墙,关闭无关端口
  • 关注安全相关新闻,保持服务器相关软件为最新版本。

三、其他优化

1.静态资源配置到CDN

对于访问量比较大的站点,可以将可道云的静态资源迁移到CDN。步骤如下:

  1. 先将kod下面的static上传到相应cdn,获得对应访问static目录的域名,例如: http://cdn.test.com/static/
  2. 配置setting_user.php 配置cdn地址: 在config/下新建 setting_user.php文件;粘贴如下内容;(已存在则不需要新建) <?php $GLOBALS['config']['settings']['staticPath'] = "http://cdn.test.com/static/";
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-04-01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、上传下载速度优化
    • 1. 修改nginx的配置文件
      • 2. 修改php配置文件php.ini;
        • 3.修改可道云配置
          • 4.nginx + php-fpm上传优化
          • 二、系统安全优化
            • 1.开启防跨站
              • 2.开启登陆验证码
                • 3. 其他服务器运维优化
                • 三、其他优化
                  • 1.静态资源配置到CDN
                  相关产品与服务
                  云服务器
                  云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档