邱立祥

——— 一个刚刚起步的 Linuxer

Cononico

2018年1月5日

Web相关>

网站提速之wordpress

Nginx的优化

Nginx对网页速度影响较大的就三个相关配置——http/2、Gzip、Keep-alive。

nginx启用Gzip

Gzip对文本文件的加载速度有质的飞跃,甚至直接影响首屏速度,而且能节省至少40%的流量成本。

系统CPU负载不重的话,gzip_comp_level的值可以设为6,一般设为4,值越大压缩效果越好,不过越占CPU。

Keep-alive

Keep-alive又叫HTTP持久链接,表示一条TCP/IP链接上承载着多个上下行请求。相对于传统的单链接模式(一次请求需要创建一条单独的BS链接的模式)来说,Keep-alive技术有着大幅度的性能提升。下面是Keep-alive技术的优点。

1)CPU和内存的负载会减轻,因为同一时刻打开的TCP链接数变少了,后续请求和响应无须打开新链接,可以继续基于这些TCP链接发送上下行数据。

2)当TCP链接建立后,请求的等待时间将会减少,TCP建立链接时的三次握手发生在用户侧与server之间。当握手成功时,一条TCP链接就被建立起来了。在Keep-alive模式下,握手环节是一次性的,即在链接建立时便会发生。链接建立后发生的数据传递不产生握手环节,这部分的开销就被省了下来,所以说可以有效的提升请求上下行数据的性能。

3)网络阻塞情况减轻。因为同一时刻只会有少数的链接保持着。

MySQL的优化

主要考虑存储引擎方面,存储引擎又称表类型是MySQL的核心部分,负责处理表的操作。MySQL提供了多个存储引擎,使用的最多的是MyISAM和InnoDB。

MyISAM和InnoDB都有各自的优缺点,MySQL从5.5版本开始使用InnoDB作为默认存储引擎。这说明InnoDB比MyISAM要好吗?其实不然,术业有专攻而已。
我们先来看看MyISAM的优点:
1)MyISAM为速度而设计,和SELECT搭配起来使用更好。
2)如果表的数据偏向静态,即表中的数据不经常更新/删除,大多数仅仅是查询操作,那么使用MyISAM是最好的选择。
我们回过头来看看wordpress使用数据库的场景:主要是写博文给网友看,打开一篇博文对应数据库的查询操作。那么MyISAM简直就是为wordpress而生的啊,而InnoDB是为高可靠性和高写性能而设计的,跟wordpress博客关系不大。

而且还有一点MyISAM备份数据库,恢复数据库、或者恢复单个数据表都非常方便,直接操作文件.MYD文件就行了。再有一点就是MyISAM因为功能少,所以轻量,所以比InnoDB节省系统资源。
修改默认存储引擎为MyISAM,在my.cnf里写入

上面的设定,可以通过下面的MySQL语句查看设定结果:

PHP的优化

PHP7 较之于PHP5 的性能提升可不止一星半点,所以先升级到7吧,OpCache对php性能的加成很大,但发现很多小白都是安装了OpCache却没有启用,他们以为在configure的时候加上了–enable-opcache就行了。复制下面的内容直接在终端里面执行。

都是PHP官方提供的获得高性能的建议值,值得注意的是zend_extension后面的路径最好写绝对路径,相对路径好像有问题。修改php.ini后得重启php-fpm才能生效。

来一发吐槽