[返回] [最新] [最热门] [最高评价]

记我配置Nginx代理的遭遇

我一直觉得自己的Nginx知识还算过得去,可是我错了,配置Nginx代理的遭遇让我苦不堪言,即便如此,我还是挣扎着记录一二,以便让后来者能够踩着我的足迹继续前进。

说起来非常简单:某项目的搜索功能升级了,需要把请求从旧的服务代理到新的服务上面去,其中有点儿不一样的地方是参数的传递形式发生的变化,例子如下:

旧:http://www.old.com/query/lamp

新:http://ww
...

老王 2014-05-27 17:14 | 查看: 12934

Memcached二三事儿

Memcached绝对称得上是NoSQL老兵!可惜随着时间的推移,Redis等后起之秀羽翼渐丰,Memcached相比之下已呈颓势。那我们还用不用学习它?答案是肯定的!毕竟仍然有很多项目依赖着它,如果忽视它,一旦出了问题就只有干瞪眼的份儿了。

网络上关于Memcached的资料可以说是浩如烟海,其中不乏一些精彩之作,比如说由爱好者翻译的「Memcached全面剖析」系列文章,在中文社区广为流传,
...

老王 2012-12-30 19:43 | 查看: 7491

实战ElasticStack

我对 ElasticStack 可以说是既熟悉又陌生,说熟悉是因为很久以前就已经开始使用 ELK 来分析日志了,说陌生是因为以前的 ELK 环境都是同事搭建的,我主要是看看 Kibana 面板而已。随着 V5 的发布,ELK 全面进化为 ElasticStack,该自己动手了。

实际操作前最好大致浏览一下官方文档,以便对 ElasticStack 各个组件的作用有一个基本概念,如果看完文档还没搞
...

老王 2016-12-11 15:22 | 查看: 6415

跟我学Rsyslog

在数据为王的时代,日志管理是一个绕不开的话题,相应的开源软件有不少,比如热门的三件套:Logstash、ElasticSearch、Kibana,可惜我对这些高大上的东西往往心存敬畏,不敢轻易触碰,相比较而言,我更喜欢能够快速上手的东西。

对于日志管理,老版本的Linux缺省使用Syslog,其配置大致如下所示:

shell> cat /etc/syslog.conf

# Log al
...

老王 2014-05-09 11:34 | 查看: 6282

PHP与Recursion

在程序设计中,递归(Recursion)是一个很常见的概念,合理使用递归,可以提升代码的可读性,但同时也可能会带来一些问题。

下面以阶乘(Factorial)为例来说明一下递归的用法,实现语言是PHP:

<?php

function factorial($n) {
if ($n == 0) {
return 1;
}

return factor
...

老王 2012-06-25 18:13 | 查看: 6214

基于PECL OAuth打造微博应用

最近,国内主要门户网站相继开放了微博平台,对开发者而言这无疑是个利好消息,不过在实际使用中却发现平台质量良莠不齐,有很多不完善的地方,就拿PHP版SDK来说吧,多半都是用TwitterOAuth改的,一旦多平台集成,很容易出现命名冲突之类的问题。

既然官方SDK不给力,那我们只能发扬自力更生的革命精神了!好消息是PHP本身已经有了一个标准的OAuth实现:PECL OAuth!下面以此为例来讲解
...

老王 2011-01-16 16:26 | 查看: 5737

记录一个多核CPU负载不均衡问题

继续阅读 →]]>
...

火丁笔记 1970-01-01 08:00 | 查看: 5138

在Golang的HTTP请求中共享数据

首先,我们需要先明确一下问题的描述:本文所要讨论的共享数据可不是指的 cookie、session 之类的概念,它们描述的是在「请求间」共享数据,而我们关注的是在「请求中」共享数据,也就说是,在每个请求中的各个 middleware 和 handler 之间共享数据。

实际上,我之所以关注这个问题源自 httprouter,众所周知,httprouter 是目前 Golang 社区最流行的 HT
...

老王 2019-02-08 11:30 | 查看: 4851

Nginx缓存解决方案:SRCache

前些天帮别人优化PHP程序,搞得灰头土脸,最后黔驴技穷开启了FastCGI Cache,算是勉强应付过去了吧。不过FastCGI Cache不支持分布式缓存,当服务器很多的时候,冗余的浪费将非常严重,此外还有数据一致性问题,所以它只是一个粗线条的解决方案。

对此类问题而言,SRCache是一个细粒度的解决方案。其工作原理大致如下:

SRCache工作原理

当问题比较简单的时候,通常SRCac
...

老王 2014-06-20 15:10 | 查看: 4044

学习Golang的HTTP中间件机制

因为 Golang 内置的 net/http 天生就支持 HTTP 中间件机制,所以即便不用 gin 之类的 Web 框架,我们也可以写出扩展性很好的 Web 应用。

假如你不了解 Golang 的 HTTP 中间件机制的话,那么可以把它看成是一个洋葱:

通过洋葱看中间件

每一个中间件都是一层洋葱皮,其中每一个中间件都可以改变请求和响应,我们可以很自然的把不同的逻辑放到不同的洋葱皮里,更代码
...

老王 2019-01-31 23:23 | 查看: 3955

MVC演化史

Martin Fowler在他所写的《企业应用架构模式》一书中感慨道:MVC已经成为我们最常误用的模式。人们之所以常常误用MVC,很大程度上是因为混淆了不同的MVC变体。

Classic MVC

大概上世纪七十年代,Xerox PARC的Trygve提出了MVC的概念,并应用在Smalltalk系统中,为了和其它类型的MVC加以区分,历史上习惯的称之为Classic MVC。

Model:封
...

老王 2011-05-02 21:49 | 查看: 3931

如何抓取汽车之家的车型库

实际上,关于「如何抓取汽车之家的车型库」,我已经在「使用 Mitmproxy 分析接口」一文中给出了方法,不过那篇文章里讲的是利用 API 接口来抓取数据,一般来说,因为接口不会频繁改动,相对 WEB 页面而言更稳定,所以通常这是数据抓取的最佳选择,不过利用 API 接口来抓取数据有一些缺点,比如有的数据没有 API 接口,亦可能虽然有 API 接口,但是数据使用了加密格式,此时只能通过 WEB
...

老王 2017-02-01 19:44 | 查看: 3796

...更多...