最新 | 最热门 | 最高评价

+0  如何正确配置Nginx+PHP

Tag: Technical | Nginx | PHP
老王 发于 2013年10月23日 20:11 | 点击: 1303 | 展开摘要
对很多人而言,配置Nginx+PHP无外乎就是搜索一篇教程,然后拷贝粘贴。听上去似乎也没什么问题,可惜实际上网络上很多资料本身年久失修,漏洞百出,如果大家不求甚解,一味的拷贝粘贴,早晚有一天会为此付出代价。

假设我们用PHP实现了一个前端控制器,或者直白点说就是统一入口:把PHP请求都发送到同一个文件上,然后在此文件里通过解析「REQUEST_URI」实现路由。

此时很多教程会教大家这样配置Nginx+PHP:

server {
listen 80;
s

查看全文: http://www.udpwork.com/item/11012.html

+0  通过Strace定位故障原因

Tag: Technical | Strace
老王 发于 2013年10月06日 01:07 | 点击: 1863 | 展开摘要
俗话说:不怕贼偷,就怕贼惦记着。在面对故障的时候,我也有类似的感觉:不怕出故障,就怕你不知道故障的原因,故障却隔三差五的找上门来。

十一长假还没结束,服务器却频现高负载,Nginx出现错误日志:

connect() failed (110: Connection timed out) while connecting to upstream

connect() failed (111: Connection refused) while connecting to up

查看全文: http://www.udpwork.com/item/10866.html

+0  Nginx与Gzip请求

Tag: Technical | Lua | Nginx
老王 发于 2013年09月02日 23:20 | 点击: 1079 | 展开摘要
前些天,移动端的同事跑来问:某些API需要传输大数据,Nginx服务器能否支持Gzip请求?一方面可以节省移动端流量;另一方面还可以加快传输速度,提升用户体验。对于Apache来说,利用SetInputFilter,可以很轻松的实现这个功能,那么Nginx如何做呢?

既然移动端发送的是Gzip请求,自然需要想想如何在服务端解压缩。搜索一下现成的Nginx的模块,发现和Gzip相关的模块有如下几个:

Gzip: Gzip responses.

Gzip Precompre

查看全文: http://www.udpwork.com/item/10580.html

+0  闲扯Nginx的accept_mutex配置

Tag: Technical | Nginx
老王 发于 2013年08月24日 23:35 | 点击: 990 | 展开摘要
通常多数人不会注意Nginx的accept_mutex配置,不过实际上它对系统的吞吐量有一定的影响,今天生物钟紊乱睡不着觉,索性闲扯一下Nginx的accept_mutex配置。

让我们看看accept_mutex的意义:当一个新连接到达时,如果激活了accept_mutex,那么多个Worker将以串行方式来处理,其中有一个Worker会被唤醒,其他的Worker继续保持休眠状态;如果没有激活accept_mutex,那么所有的Worker都会被唤醒,不过只有一个Work

查看全文: http://www.udpwork.com/item/10489.html

+0  初窥InnoDB的Memcached插件

Tag: Technical | Memcached | MySQL
老王 发于 2013年08月20日 17:32 | 点击: 1180 | 展开摘要
前些年,HandlerSocket的横空出世让人们眼前一亮,当时我还写了一篇文章介绍了其用法梗概,时至今日,由于种种原因,HandlerSocket并没有真正流行起来,不过庆幸的是MySQL官方受其启发,研发了基于InnoDB的Memcached插件,总算是在MySQL中延续了NoSQL的香火,以前单独架设Memcached服务器不仅浪费了内存,而且还必须自己维护数据的不一致问题,有了Memcached插件,这些问题都不存在了,而且借助MySQL本身的复制功能,我们可以说是变

查看全文: http://www.udpwork.com/item/10432.html

+0  笨法算RPS

Tag: Technical | AWK | Gnuplot
老王 发于 2013年07月25日 23:22 | 点击: 1011 | 展开摘要
计算RPS最简单的方法是用一天的总访问量除以一天的总秒数,不过这样得出的结论只是一个平均值,无法反映各个时间点的真实情况,真正有价值的是即时的RPS数据,如果有一个比较好的监控系统的话,这并不难,可惜我没有,而且实际上我遇到的问题还要更复杂些:大部分接口是PHP写的,少部分接口是LUA写的,为了更有针对性,需要分别计算PHP和LUA的即时RPS数据。

这里让我们假设Web日志已经做了按天分割,如果你不清楚怎么搞,可以参考我前一段时间写的:「被遗忘的Logrotate」,日志

查看全文: http://www.udpwork.com/item/10291.html

+0  学习搭建Python环境

Tag: Technical | Python
老王 发于 2013年07月23日 22:09 | 点击: 1089 | 展开摘要
写了好多年的PHP代码,不免有些许的厌倦,是时候学一门新语言了,这就好比对男人来说,家里的女人看得久了,新鲜感荡然无存,自然想纳几房小妾,不过对于身处河东狮吼险境的我而言,此等美梦注定遥不可及,还是老老实实学编程吧,想当年我还像模像样的学过Python,可惜没坚持下来,希望这次能行。

闲言碎语不要讲,表一表Python的安装,操作系统为CentOS,因为版本旧,加之已经包含了Python-2.4.3,所以我换了一个路径安装了Python-2.7.5,目前此版本比较通用:

查看全文: http://www.udpwork.com/item/10277.html

+0  请注意PHP程序里的敏感信息

Tag: Technical | PHP
老王 发于 2013年07月19日 17:01 | 点击: 2012 | 展开摘要
何为敏感信息?简单点来说就是你不想让别人知道的信息,比如说数据库的地址,用户名,密码等等,此类信息往往知道的人越少越好。

通常,PHP程序里的配置文件大致如下所示:

<?php

return array(
'database' => array(
'host' => '192.168.0.1',
'username' => 'administrator',
'password' =&

查看全文: http://www.udpwork.com/item/10222.html

+0  MySQL优化的奇技淫巧之STRAIGHT_JOIN

Tag: Technical | MySQL
老王 发于 2013年06月04日 23:37 | 点击: 1565 | 展开摘要
最近没怎么搞SQL优化,碰巧数据库被慢查询搞挂了,于是拿来练练手。

问题

通过「SHOW FULL PROCESSLIST」语句很容易就能查到问题SQL,如下:

SELECT post.*
FROM post
INNER JOIN post_tag ON post.id = post_tag.post_id
WHERE post.status = 1 AND post_tag.tag_id = 123
ORDER BY post.created DESC
LIMIT 1

查看全文: http://www.udpwork.com/item/9974.html

+0  如何诊断CDN故障

Tag: Technical | CDN
老王 发于 2013年05月23日 20:19 | 点击: 1173 | 展开摘要
某项目使用CDN做文件下载服务,最近不时有网友反馈下载出错,因为CDN是第三方提供的,且节点众多,所以诊断起来有点麻烦,必须想想招儿。

首当其冲的问题是如何确认CDN有哪些节点?

幸运的是通过阿里测提供的服务,我们能拿到这个IP列表,当然这个IP列表不可能百分百完整,不过应该包含了大部分的节点,有兴趣的可以参考百度的JQuery CDN例子。

需要说明的是阿里测偏重于测试国内的网络环境,如果你要测试的CDN偏重于国外的网络环境,可以考虑使用Just-Ping提供的服务。

查看全文: http://www.udpwork.com/item/9910.html

+0  笨法玩秒杀

Tag: Technical | MySQL | Redis
老王 发于 2013年05月19日 22:07 | 点击: 1112 | 展开摘要
秒杀无异于一场自找的DDoS攻击,从这个角度来说:玩秒杀的电子商务网站,和那些不停喊着用力打我的受虐狂没有什么两样,因为他们都痛并快乐着。

在「中国数据库技术大会」上,淘宝分享了「秒杀场景下MySQL的低效」,详细分析了秒杀的技术难点及改进措施,简而言之,主要就是在高并发事务请求的情况下,数据库性能由于死锁检测等因素直线下降,在这种场景下,单纯的关闭死锁检测虽然可以提升一定的性能,但这顶多是治标而已,如何治本?淘宝给出来两个改进方法:

请求排队:如果请求一股脑的涌入数据库

查看全文: http://www.udpwork.com/item/9879.html

+0  笨法玩秒杀

Tag: Technical | MySQL | Redis
老王 发于 2013年05月19日 22:07 | 点击: 1356 | 展开摘要
秒杀无异于一场自找的DDoS攻击,从这个角度来说:玩秒杀的电子商务网站,和那些不停喊着用力打我的受虐狂没有什么两样,因为他们都痛并快乐着。

在「中国数据库技术大会」上,淘宝分享了「秒杀场景下MySQL的低效」,详细分析了秒杀的技术难点及改进措施,简而言之,主要就是在高并发事务请求的情况下,数据库性能由于死锁检测等因素直线下降,在这种场景下,单纯的关闭死锁检测虽然可以提升一定的性能,但这顶多是治标而已,如何治本?淘宝给出来两个改进方法:

请求排队:如果请求一股脑的涌入数据库

查看全文: http://www.udpwork.com/item/9862.html
|<<<3456789>>>| 一共11页, 131条记录