wordpress全栈优化

wordpress全栈优化

从最开始计算,《始终不够》个人博客上线已经有两年多了。从最开始就是使用的wordpress,最初为了丰富站内功能,使用了一箩筐的插件,首页加载基本在10s以上,期间使用xhprof做过几次优化,都不是很理想。最近抽出时间整体做了一次性能优化。首页响应时间从1s减少到20ms,并发度从2/s增加到500/s。可以说是有了质的飞跃。这里分享下这次的优化过程。 首先,确定我们要优化的组件: 浏览器端优化 php端优化 nginx优化 浏览器端优化 浏览器端优化比较简单,从减少网络流量的角度来看,我们需要使用压缩和浏览器端缓存。 启用压缩(注意放到http块中)。启动压缩后,浏览器接收到的是trunk编码,可以一边接收一边解析展示,提高前端加载效率。 gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.1; gzip_comp_level 2; gzip_types text/plain application/x-javascript text/css text/javascript application/x-httpd-php image/jpeg image/gif image/png; gzip_vary on; 启用浏览器端cache,因为我很少会去修改静态文件,所以缓存时间设定为了30天。 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; } location ~ .*\.(js|css)?$ { expires 30d; } 启用wp super cache后,你可以启用一个cdn域名。浏览器一半会限制对同一个域名的并发度(最多对同一个域名发起N个请求,N视浏览器而定)。你可以再解析一个域用于CDN静态缓存,或者将这些静态资源上传至七牛等CDN上。如果你的首页资源比较多,这是个不错的选择。 PHP端优化 PHP端优化需要考虑以下几个问题: 对象缓存 PHP本身的执行效率 对象缓存,可以使用Redis Object Cache插件来实现,只需要简单配置即可,这里注意你需要安装redis扩展,否则这个插件无法启动。PHP本身的执行效率,可以使用Zend
Continue reading wordpress全栈优化

ERR_INCOMPLETE_CHUNKED_ENCODING浏览器报错

ERR_INCOMPLETE_CHUNKED_ENCODING浏览器报错

最近做博客迁移,迁移完成后发现wordpress部分页面会挂,打开开发者工具发现某些php脚本虽然返回时的200状态,但仍提示ERR_INCOMPLETE_CHUNKED_ENCODING错误。经过百度、谷歌搜索以为是浏览器问题,但是IE等其他浏览器同样存在问题,换电脑也不行,基本可以确认为是服务器问题了。 报错提示解压错误,谷歌到是因为服务器异常关闭了HTTP链接导致。我调试PHP发现,PHP执行echo的输出并没有全部返回给浏览器,浏览器收到的知识一半数据。由此可以判断服务器在处理或者发送报文的时候出现了什么异常。 最后通过查看nginx错误日志发现如下报错:   分析错误发现该错误是由于对/fastcgi_temp/1/26/0000000261权限不够造成的,然后我想起来我的nginx和php-fpm最初是以nobody身份运行的(搭建环境的时候偷懒了),后来修改为www用户后,权限没有随着修改。修改过该目录用户、用户组归属、权限之后,nginx不再报出该错误,浏览器也可以正常收到服务器请求了。 原创文章,转载请注明: 转载自始终不够 本文链接地址: ERR_INCOMPLETE_CHUNKED_ENCODING浏览器报错