<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Hello, SA &#187; nosql</title>
	<atom:link href="http://blog.helosa.org/tag/nosql/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.helosa.org</link>
	<description>Linux System Administrator</description>
	<lastBuildDate>Tue, 31 Jan 2012 08:28:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>零编码 nginx + html 实现山寨版url shorten 服务</title>
		<link>http://blog.helosa.org/2010/03/13/nginx-html-url-shorten.html</link>
		<comments>http://blog.helosa.org/2010/03/13/nginx-html-url-shorten.html#comments</comments>
		<pubDate>Sat, 13 Mar 2010 06:14:16 +0000</pubDate>
		<dc:creator>Chan Cham Chung</dc:creator>
				<category><![CDATA[technology]]></category>
		<category><![CDATA[memcache]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[nosql]]></category>

		<guid isPermaLink="false">http://blog.helosa.org/?p=187</guid>
		<description><![CDATA[nginx 有个 memcache 的模块，可以读取 memcache 里的数据。但这个模块很简单，只能get，不能set。如果要set 就必须依靠别的方式了。 今天浏览一下nginx wiki module 的时候，发现国人写了一个功能稍多一点的模块，叫 memc_module ，几乎已经实现了 memcache 的所有tcp 协议。 路过见到，那我就玩玩啦，尝试下不用动态语言实现 url shorten 。 安装 memc module ，按照wiki 上面说的安装吧。 启动 memcache ，memcached -d 。 nginx 配置下，然后启动nginx &#8230; location / { root   html; index  index.html index.htm; rewrite &#8220;^(.*)$&#8221; /hello?key=$1 last; } location /hello { memc_pass 127.0.0.1:11211 ; set $memc_key $arg_key [...]]]></description>
			<content:encoded><![CDATA[<p>nginx 有个 memcache 的模块，可以读取 memcache 里的数据。但这个模块很简单，只能get，不能set。如果要set 就必须依靠别的方式了。</p>
<div id=":14b">今天浏览一下nginx wiki module 的时候，发现国人写了一个功能稍多一点的模块，叫 memc_module ，几乎已经实现了 memcache 的所有tcp 协议。<br />
路过见到，那我就玩玩啦，尝试下不用动态语言实现 url shorten 。</p>
<p>安装 memc module ，按照wiki 上面说的安装吧。</p>
<p>启动 memcache ，memcached -d 。</p>
<p>nginx 配置下，然后启动nginx<br />
&#8230;<br />
location / {<br />
root   html;<br />
index  index.html index.htm;<br />
rewrite &#8220;^(.*)$&#8221; /hello?key=$1 last;<br />
}</p>
<p>location /hello {<br />
memc_pass <a href="http://127.0.0.1:11211/" target="_blank">127.0.0.1:11211</a> ;<br />
set $memc_key $arg_key ;<br />
}<br />
&#8230;</p>
<p>写html ，写个form 吧，用 post 把原始的url 提交给 nginx ，然后nginx 在对 memcache 做set 操作。这个是 value 部分，还有一个key 的部分，可以用js 生成一个随机数提交。<br />
这里，我用curl 模拟一下这个 form 的动作，其中，就当我的随机数是 hello 吧<br />
curl &#8211;data &#8220;&lt;html&gt;&lt;body&gt;&lt;meta http-equiv=\&#8221;refresh\&#8221; content=\&#8221;0;url=<a href="http://www.163.com/" target="_blank">http://blog.helosa.org</a>\&#8221;&gt;&lt;/body&gt;&lt;/html&gt;&#8221; <a href="http://127.0.0.1/hello?key=/163" target="_blank">http://127.0.0.1/hello?key=/hello</a></p>
<p>在这句话里，<br />
key 是  /hello<br />
value 是 &lt;html&gt;&lt;body&gt;&lt;meta http-equiv=&#8221;refresh&#8221; content=&#8221;0;url=<a href="http://www.163.com/" target="_blank">http://blog.helosa.org</a>&#8220;&gt;&lt;/body&gt;&lt;/html&gt;</p>
<p>然后，我们访问 <a href="http://127.0.0.1/163" target="_blank">127.0.0.1/163</a> 是，就会跳转到我的blog首页了。</p>
<p>哈哈，url shorten 的服务就是这样实现了，实在有点山寨！</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.helosa.org/2010/03/13/nginx-html-url-shorten.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

