天天看點

LNMP架構優化

LNMP web架構優化

前端:

1、js、css甚至html代碼壓縮和gzip壓縮,css在頭,js在尾。

2、合并Js、CSS,減少http請求

3、網站太大可以考慮用bigpipe頁面加載技術

4、圖檔懶加載

5、CSS Sprites(圖檔整合成一個,同樣是為了減少http請求)

6、圖檔的無損壓縮(Smush.it )

7、靜态檔案浏覽器緩存(head頭裡Expires、cache-control設定緩存時間)

8、對于http請求多的網站可以把靜态檔案放到多個域名下,有利于增加并發請求,也利于減少cookie發送

9、網站根目錄下的favicon.ico記得加上

10、減少重定向301、302

11、cdn分布

12、寫好的你的前端代碼

web後端:

1、PHP通過opcahe緩存到記憶體中

2、通過LVS或者Nginx進行負載均衡

3、通過Nginx或者squid進行反向代理,緩存一些資料

4、開啟keep-alive

5、nginx以unix-domain-socket方式連接配接fastcgi(php)

6、通過記憶體共享session,例如memcached,redis

7、負載均衡要做高可用,可以通過keepalived、heartbeat(腦裂警惕)

8、去掉你不用的PHP擴充

9、存儲共享,把相同的東西放到一起公用,例如靜态資源,實作的方式很多,例如NFS、MFS(moosefs)

10、寫好你的後端代碼

資料端:

1、MySQL主從,多主多從等等

2、分庫分表

3、緩存查詢的資料,例如Memcached

4、索引

5、分區、視圖、存儲過程用一下會有意外收獲

6、多explain和explain partitions你的sql

7、如果資料不那麼重要,資料量又特别大,那就可以考慮Redis、Mongodb、HBase了

8、搜尋用Sphinx搜尋引擎,一個國産的Xunsearch也不錯,一般夠用了

9、大并發的插入可以通過隊列減少并發,例如Redis的List就能實作

10、優化MySQL的配置,例如連接配接數、InnoDB緩沖池、MyISQM鍵緩存

11、備份資料

Linux:

1、最小化安裝Linux

2、優化Linux核心參數

3、關閉不需要的服務,例如ipv6、列印服務等

4、軟體安裝盡量選擇編譯安裝

總結:

目前就能想到這麼多,以後想起來再補充。以上隻是針對LNMP架構優化方面的見解,沒有深入到具體,大家可以針對每個點做深入研究。本人短見薄識,希望大家可以多多交流!