nginx和php-fpm简单优化

nginx和php-fpm安装好之后,默认配置运行是OK的,不过从长期运行考虑,必要的优化还是需要的。

gzip

gzip是一种通过压缩服务器传输内容,提高客户端响应体验的常见优化方式。gzip在nginx上默认是开启的,不过只针对html,需要我们对配置做一些调整才能对js/css等做压缩。以下是修改后的配置段:

下面解释各配置项含义。

指令名 指令含义 指令默认值
gzip 是否启用gzip。我安装nginx之后配置中gzip默认就是on的,所以没修改 off
gzip_min_length 需要压缩文件大小的阈值,超过此值才会压缩。理论上来说,值太小的话,压缩反而不合算。 20
gzip_comp_level 压缩级别。值越大,压缩后文件越小,但是所需时间与CPU资源越多。 1
gzip_types gzip针对的content-type,优化的重点,application/x-javascript针对wordpress动态生成的javascript,注意,text/html不用在这里声明,声明了反而会有警告…… text/html

启用gzip之后,服务器端响应会有类似gzip、deflate等关键字,而且响应内容长度减少了。具体检查方法理论上有很多,本人使用firebug对比查看前后响应大小。

expires

expires主要针对的是图片等不能压缩但是变动周期很长的静态内容。典型的如博客的题图。nginx上设置expires也很简单,相比gzip,设置expires时你只要知道一条指令就行了。具体配置段如下:

location后面是个简单的正则表达式,含有常见的几种图片扩展名。在遇到这些扩展名时,nginx执行expires命令,增加过期时间为15天之后的响应头。

基本的两个网站服务器的优化方法讲完了。如果你对nginx的指令有兴趣的话,nginx官方网站的指令集上有更详细的资料。

使用unix socket文件连接nginx和php-fpm

使用unix socket文件方式比纯socket方式性能稍微好一点。
顺便说一句,socket方式必须绑定127.0.0.1,否则被外部访问会很麻烦。当然,如果你觉得不放心的话,也可以像我一样切换到unix socket文件方式。
unix socket方式并不是没人用的古董,本地访问mysql貌似推荐用socket方式。

言归正传,修改地方有两个,一个是nginx的配置nginx.conf,另一个是php-fpm的配置php-fpm.conf,具体配置段如下:

注意两个fastcgi_pass。

注意最后一行。

修改完毕之后,用上一篇的init.d脚本重启nginx和php-fpm即可。

One thought on “nginx和php-fpm简单优化”

Comments are closed.