封神陵里,句芒對(duì)剛拿到射日弓的云天河說“今日始,后羿射日弓尊你為主,力量揮放多寡,決于主人!” wordpress也一樣,跑不跑得快,決于主人。今天從框架層來聊聊wordpress博客的提速優(yōu)化。
Nginx的優(yōu)化
如今有很多HTTP server軟件可供選擇,每一款都有其優(yōu)缺點(diǎn),目前最為流行的兩款當(dāng)數(shù)Nginx和Apache了。如果說Apache是阿帕奇的話,Nginx就是su37了(當(dāng)然不是電影絕密飛行里面被無人機(jī)EDI秒殺的su37),阿帕奇的機(jī)動(dòng)性能跟su37不在同一個(gè)次元,Apache的性能跟Nginx也有一定差距。
所以今天我們選擇Nginx做為HTTP服務(wù)器。Nginx對(duì)網(wǎng)頁速度影響較大的就三個(gè)相關(guān)配置——http/2、Gzip、Keep-alive。
nginx啟用Gzip
Gzip對(duì)文本文件的加載速度有質(zhì)的飛躍,甚至直接影響首屏速度,而且能節(jié)省至少40%的流量成本。
gzip on;gzip_min_length 1k;gzip_buffers 4 16k;gzip_http_version 1.0;gzip_comp_level 6;gzip_types text/plain application/x-javascript text/css application/xml application/javascript;gzip_vary on;
系統(tǒng)CPU負(fù)載不重的話,gzip_comp_level的值可以設(shè)為6,一般設(shè)為4,值越大壓縮效果越好,不過越占CPU。
Keep-alive
Keep-alive又叫HTTP持久鏈接,表示一條TCP/IP鏈接上承載著多個(gè)上下行請(qǐng)求。相對(duì)于傳統(tǒng)的單鏈接模式(一次請(qǐng)求需要?jiǎng)?chuàng)建一條單獨(dú)的BS鏈接的模式)來說,Keep-alive技術(shù)有著大幅度的性能提升。下面是Keep-alive技術(shù)的優(yōu)點(diǎn)。
1)CPU和內(nèi)存的負(fù)載會(huì)減輕,因?yàn)橥粫r(shí)刻打開的TCP鏈接數(shù)變少了,后續(xù)請(qǐng)求和響應(yīng)無須打開新鏈接,可以繼續(xù)基于這些TCP鏈接發(fā)送上下行數(shù)據(jù)。
2)當(dāng)TCP鏈接建立后,請(qǐng)求的等待時(shí)間將會(huì)減少,TCP建立鏈接時(shí)的三次握手發(fā)生在用戶側(cè)與server之間。當(dāng)握手成功時(shí),一條TCP鏈接就被建立起來了。在Keep-alive模式下,握手環(huán)節(jié)是一次性的,即在鏈接建立時(shí)便會(huì)發(fā)生。鏈接建立后發(fā)生的數(shù)據(jù)傳遞不產(chǎn)生握手環(huán)節(jié),這部分的開銷就被省了下來,所以說可以有效的提升請(qǐng)求上下行數(shù)據(jù)的性能。
3)網(wǎng)絡(luò)阻塞情況減輕。因?yàn)橥粫r(shí)刻只會(huì)有少數(shù)的鏈接保持著。
keepalive_timeout 100;
MySQL的優(yōu)化
主要考慮存儲(chǔ)引擎方面,存儲(chǔ)引擎又稱表類型是MySQL的核心部分,負(fù)責(zé)處理表的操作。MySQL提供了多個(gè)存儲(chǔ)引擎,使用的最多的是MyISAM和InnoDB。
MyISAM和InnoDB都有各自的優(yōu)缺點(diǎn),MySQL從5.5版本開始使用InnoDB作為默認(rèn)存儲(chǔ)引擎。這說明InnoDB比MyISAM要好嗎?其實(shí)不然,術(shù)業(yè)有專攻而已。
我們先來看看MyISAM的優(yōu)點(diǎn):
1)MyISAM為速度而設(shè)計(jì),和SELECT搭配起來使用更好。
2)如果表的數(shù)據(jù)偏向靜態(tài),即表中的數(shù)據(jù)不經(jīng)常更新/刪除,大多數(shù)僅僅是查詢操作,那么使用MyISAM是最好的選擇。
我們回過頭來看看wordpress使用數(shù)據(jù)庫的場景:主要是寫博文給網(wǎng)友看,打開一篇博文對(duì)應(yīng)數(shù)據(jù)庫的查詢操作。那么MyISAM簡直就是為wordpress而生的啊,而InnoDB是為高可靠性和高寫性能而設(shè)計(jì)的,跟wordpress博客關(guān)系不大。
而且還有一點(diǎn)MyISAM備份數(shù)據(jù)庫,恢復(fù)數(shù)據(jù)庫、或者恢復(fù)單個(gè)數(shù)據(jù)表都非常方便,直接操作文件.MYD文件就行了。再有一點(diǎn)就是MyISAM因?yàn)楣δ苌?,所以輕量,所以比InnoDB節(jié)省系統(tǒng)資源。
修改默認(rèn)存儲(chǔ)引擎為MyISAM,在my.cnf里寫入
default-storage-engine = MyISAM #是設(shè)定默認(rèn)的存儲(chǔ)引擎key_buffer_size = 256M#MySQL5.7里面默認(rèn)只有8M,太小query_cache_type = 1#開啟查詢緩存query_cache_size = 256MB#分配給查詢緩存的內(nèi)存大小query_cache_limit = 2MB#若查詢緩存結(jié)果的體積大于2MB,將不會(huì)緩存。
上面的設(shè)定,可以通過下面的MySQL語句查看設(shè)定結(jié)果:
show variables like 'default_storage_engine%';show variables like 'key_buffer_size%';show variables like 'query_cache_%';
PHP的優(yōu)化
PHP7較之于PHP5的性能提升可不止一星半點(diǎn),所以先升級(jí)到7吧,OpCache對(duì)php性能的加成很大,但發(fā)現(xiàn)很多小白都是安裝了OpCache卻沒有啟用,他們以為在configure的時(shí)候加上了--enable-opcache就行了。復(fù)制下面的內(nèi)容直接在終端里面執(zhí)行。
cat >> /usr/local/php/etc/php.ini<
都是PHP官方提供的獲得高性能的建議值,值得注意的是zend_extension后面的路徑最好寫絕對(duì)路徑,相對(duì)路徑好像有問題。修改php.ini后得重啟php-fpm才能生效。
-
PHP
+關(guān)注
關(guān)注
0文章
459瀏覽量
28187 -
MySQL
+關(guān)注
關(guān)注
1文章
891瀏覽量
28885 -
nginx
+關(guān)注
關(guān)注
0文章
180瀏覽量
12860 -
wordpress
+關(guān)注
關(guān)注
0文章
37瀏覽量
3219
原文標(biāo)題:網(wǎng)站提速之WordPress篇
文章出處:【微信號(hào):aming_linux,微信公眾號(hào):阿銘linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
介紹一種基于FIFO結(jié)構(gòu)的優(yōu)化端點(diǎn)設(shè)計(jì)方案
3種起動(dòng)方式與制動(dòng)方式
如何開啟WordPress調(diào)試模式(報(bào)錯(cuò)提示)?
vps搭建wordpress網(wǎng)站的3個(gè)步驟介紹
WordPress 一鍵式全站優(yōu)化插件:WPJAM-Basic

Sync QCloud COS WordPress云存儲(chǔ)插件

Wordpress On BAE針對(duì)百度云BAE修改的WordPress中文版

如何破解wordpress
恒訊科技介紹:虛擬主機(jī)托管WordPress的常見問答
如何三步實(shí)現(xiàn)高性能 WordPress 網(wǎng)站的部署

評(píng)論