Laravel网站打开速度优化的方法汇总


Posted in PHP onJuly 16, 2017

前言

Laravel是一个功能强大的框架,组件很多,代码也很庞大,它的易用方便是牺牲了性能的,即便如此它仍然是一个优秀的框架,但在正式环境下要做好优化提升网站的打开速度。下面这篇文章主要给大家介绍了关于Laravel网站打开速度优化的一些方法技巧,下面话不多说,来一起看看详细的介绍:

一、关闭debug

打开.env文件,把debug设置为false.

APP_ENV=local
APP_DEBUG=false
APP_KEY=base64:sT/aTFeaE13eyao1Raee6jC9Ff+Yle1SE+wtyk0H6B4=

二、缓存路由和配置

php artisan route:cache

php artisan config:cache

三、Laravel优化命令

php artisan optimize

四、composer优化

sudo composer dump-autoload --optimize

五、使用Laravel缓存

使用Laravel的Cache方法缓存内容,有文件缓存,数据库缓存,redis缓存,使用redis也可以用predis组件,也可以多种缓存方式结合。

$lists = Cache::remember('travel.destination.lists', 20, function () {
 return $this->destination->getList();
});

六、使用CDN

如七牛CDN,每月送你20G流量和20G存储空间,对于小站来说完全足够了。

七、使用PHP 7并开启OPcache

提高PHP 7性能的几个tips,第一条就是开启opache,引用下原文:

记得启用Zend Opcache, 因为PHP7即使不启用Opcache速度也比PHP-5.6启用了Opcache快, 所以之前测试时期就发生了有人一直没有启用Opcache的事情

我的阿里云服务器是通过一个叫remi的centos源提供的PHP 7,默认没装opcache,用yum list yum70*命令搜索一下,果然有,于是install下来:

yum install php70-php-opcache.x86_64

然后重启php-fpm,使用service php70-php-fpm restart命令。(不同的系统和环境根据自己的情况安装和开启opache)

Laravel网站打开速度优化的方法汇总

新建一个php文件,用phpinfo()函数显示php.ini信息,如果可以找到OPcache项,说明成功启用了。安装和启用PHP 7,就是给PHP 7再加一个翅膀!

八、nginx开启gzip压缩

在服务器Nginx开启gzip压缩是优化网站性能的方法之一,可以有效减少服务器带宽的消耗,缺点是会增大CPU的占用率,但是很多时候CPU往往是空闲最多的。

引用nginx官网的介绍:

The ngx_http_gzip_module module is a filter that compresses responses using the “gzip” method. This often helps to reduce the size of transmitted data by half or even more.

在Nginx开启gzip压缩

打开nginx.conf文件,添加如下:

gzip on;
gzip_min_length 1k;
gzip_buffers 16 64k;
gzip_http_version 1.1;
gzip_comp_level 9;
gzip_types text/plain application/x-javascript application/javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_vary on;

gzip参数介绍

GZIP ON|OFF

开启或者关闭gzip模块

GZIP_MIN_LENGTH 1000

设置允许压缩的页面最小字节数,页面字节数从header头中的Content-Length中进行获取。默认值是0,不管页面多大都压缩。建议设置成大于1k的字节数,小于1k可能会越压越大。 即: gzip_min_length 1024

GZIP_PROXIED EXPIRED NO-CACHE NO-STORE PRIVATE AUTH;

Nginx作为反向代理的时候启用,开启或者关闭后端服务器返回的结果,匹配的前提是后端服务器必须要返回包含”Via”的 header头。

GZIP_TYPES TEXT/PLAIN APPLICATION/XML;

匹配MIME类型进行压缩,(无论是否指定)”text/html”类型总是会被压缩的。

通过浏览器判断是否开启gzip压缩

如firefox,打开一个网页,打开debug控制栏,如图:

Laravel网站打开速度优化的方法汇总

Content-Encoding字段是gzip,表示该网页是经过gzip压缩的。

这不仅仅是针对Laravel网站的性能优化方法,其中很多是通用的网站性能优化的方法,当然还有很多可以优化的地方。

总结

以上就是这篇文章的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

PHP 相关文章推荐
php 删除无限级目录与文件代码共享
Nov 22 PHP
深入php中var_dump方法的使用详解
Jun 24 PHP
php操作XML、读取数据和写入数据的实现代码
Aug 15 PHP
PHP+MYSQL会员系统的开发实例教程
Aug 23 PHP
php中实现记住密码下次自动登录的例子
Nov 06 PHP
php实现用于计算执行时间的类实例
Apr 18 PHP
php使用文本统计访问量的方法
May 12 PHP
php单链表实现代码分享
Jul 04 PHP
[原创]php实现 data url的图片生成与保存
Dec 04 PHP
详解php 使用Callable Closure强制指定回调类型
Oct 26 PHP
Thinkphp 框架扩展之应用模式实现方法分析
Apr 27 PHP
tp5.1 框架数据库高级查询技巧实例总结
May 25 PHP
PHP实现创建微信自定义菜单的方法示例
Jul 14 #PHP
PHP微信公众号开发之微信红包实现方法分析
Jul 14 #PHP
PHP机器学习库php-ml的简单测试和使用方法
Jul 14 #PHP
thinkphp3.2嵌入百度编辑器ueditor的实例代码
Jul 13 #PHP
PHP微信PC二维码登陆的实现思路
Jul 13 #PHP
PHP基于socket实现客户端和服务端通讯功能
Jul 13 #PHP
php中请求url的五种方法总结
Jul 13 #PHP
You might like
漫荒推荐:画风超赞的国风漫画推荐 超长假期不无聊
2020/03/08 国漫
PHP实现图片简单上传
2006/10/09 PHP
PHP显示今天、今月、上月、今年的起点/终点时间戳的代码
2011/05/25 PHP
基于curl数据采集之正则处理函数get_matches的使用
2013/04/28 PHP
Zend Framework基于Command命令行建立ZF项目的方法
2017/02/18 PHP
javascript学习笔记(十四) window对象使用介绍
2012/06/20 Javascript
checkbox全选所涉及到的知识点介绍
2013/12/31 Javascript
jquery序列化表单以及回调函数的使用示例
2014/07/02 Javascript
JS实现的5级联动Select下拉选择框实例
2015/08/17 Javascript
JavaScript如何实现图片懒加载(lazyload) 提高用户体验(增强版)
2016/11/30 Javascript
JSON与js对象序列化实例详解
2017/03/16 Javascript
在一个页面实现两个zTree联动的方法
2017/12/20 Javascript
微信小程序实现时间预约功能
2018/11/27 Javascript
微信小程序如何使用云开发
2019/05/17 Javascript
js实现旋转木马轮播图效果
2020/01/10 Javascript
JavaScript之scrollTop、scrollHeight、offsetTop、offsetHeight等属性学习笔记
2020/07/15 Javascript
微信小程序12行js代码自己写个滑块功能(推荐)
2020/07/15 Javascript
Js图片点击切换轮播实现代码
2020/07/27 Javascript
vue之封装多个组件调用同一接口的案例
2020/08/11 Javascript
Vue封装Axios请求和拦截器的步骤
2020/09/16 Javascript
jdk1.8+vue elementui实现多级菜单功能
2020/09/24 Javascript
解决idea开发遇到javascript动态添加html元素时中文乱码的问题
2020/09/29 Javascript
Python实现利用最大公约数求三个正整数的最小公倍数示例
2017/09/30 Python
python3.6+opencv3.4实现鼠标交互查看图片像素
2018/02/26 Python
使用PM2+nginx部署python项目的方法示例
2018/11/07 Python
简单了解python的break、continue、pass
2019/07/08 Python
Pytorch 中retain_graph的用法详解
2020/01/07 Python
Python-opencv 双线性插值实例
2020/01/17 Python
如何用Python和JS实现的Web SSH工具
2021/02/23 Python
微信端html5页面调用分享接口示例
2018/03/14 HTML / CSS
ProForm英国站点:健身房和健身器材网上商店
2019/06/05 全球购物
Currentbody美国/加拿大:美容仪专家
2020/03/09 全球购物
WEB控件及HTML服务端控件能否调用客户端方法?如果能,请解释如何调用?
2015/08/25 面试题
Ruby中的保护方法和私有方法与一般面向对象程序设计语言的一样吗
2013/05/01 面试题
总结一下关于在Java8中使用stream流踩过的一些坑
2021/06/24 Java/Android
无线电通信名词解释
2022/02/18 无线电