Laravel專案速度優化的淺析

*文
發布: 2023-03-19 08:00:01
原創
1810 人瀏覽過

最近在學習 Laravel 框架,自己做了個項目,總結了一些 Laravel 網站效能提升的方法。本文主要為大家彙整介紹了Laravel網站開啟速度優化的一些方法,文中介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。希望對大家有幫助。

前言

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)

#新建一個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 transmit data by od. This often helps to reduce the size of transmit or by by half.


在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控制欄,如圖:

Content-Encoding欄位是gzip,表示網頁是經過gzip壓縮的。

這不僅僅是針對Laravel網站的效能最佳化方法,其中許多是通用的網站效能最佳化的方法,當然還有很多可以優化的地方。

相關推薦:

詳解Laravel實作supervisor執行非同步進程的方法

詳解如何使用Laravel實作簡單的表單提交

#Laravel最佳化之分割路由檔案

以上是Laravel專案速度優化的淺析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!