<?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>瞎摆摆 &#187; 未分类</title>
	<atom:link href="http://xiabaibai.net/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://xiabaibai.net</link>
	<description>乱弹-互联网、游戏、程序、设计</description>
	<lastBuildDate>Wed, 21 Dec 2011 08:32:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>基于nginx的pop3/imap/smtp的反向代理解决方案</title>
		<link>http://xiabaibai.net/2011/08/nginx-pop3-imap-smtp-reverse-proxy/</link>
		<comments>http://xiabaibai.net/2011/08/nginx-pop3-imap-smtp-reverse-proxy/#comments</comments>
		<pubDate>Wed, 31 Aug 2011 05:05:49 +0000</pubDate>
		<dc:creator>威廉</dc:creator>
				<category><![CDATA[未分类]]></category>

		<guid isPermaLink="false">http://xiabaibai.net/?p=197</guid>
		<description><![CDATA[本文介绍基于nginx的邮局反向代理配置方案。nginx对来源于客户端的pop3/smtp/imap请求予以转发到后端postfix，后端邮件服务器采用postfix 2.8.0，已配置并正常运行。 本方案参考 Using a php script on apache server as the auth backend ，并基于此方案进行改进，并增加了对smtp的代理。 环境配置：centos 5.5 + nginx 1.0.4 软件安装： yum groupinstall &#39;Development Tools&#39; -y rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm yum install libxml2-devel libxslt-devel pcre-devel libtool-ltdl libtool-ltdl-devel cd /usr/src wget http://nginx.org/download/nginx-1.0.4.tar.gz tar -zxf nginx-1.0.4.tar.gz cd nginx-1.0.4 ./configure &#8211;prefix=/usr/local/nginx &#8211;with-mail &#8211;without-http make &#38;&#38; make install 配置nginx.conf： #user&#160; [...]]]></description>
			<content:encoded><![CDATA[<p><strong>本文介绍基于nginx的邮局反向代理配置方案。nginx对来源于客户端的pop3/smtp/imap请求予以转发到后端postfix，后端邮件服务器采用postfix 2.8.0，已配置并正常运行。</strong></p>
<p>	本方案参考 <a href="http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript" target="_blank">Using a php script on apache server as the auth backend </a>，并基于此方案进行改进，并增加了对smtp的代理。</p>
<p>	<strong>环境配置</strong>：centos 5.5 + nginx 1.0.4</p>
<p><strong>软件安装</strong>：</p>
<blockquote>
<p>yum groupinstall &#39;Development Tools&#39; -y<br />
		rpm -Uhv <a href="http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm">http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm</a><br />
		yum install libxml2-devel libxslt-devel pcre-devel libtool-ltdl libtool-ltdl-devel</p>
<p>		cd /usr/src<br />
		wget http://nginx.org/download/nginx-1.0.4.tar.gz<br />
		tar -zxf nginx-1.0.4.tar.gz<br />
		cd nginx-1.0.4<br />
		./configure &#8211;prefix=/usr/local/nginx &#8211;with-mail &#8211;without-http<br />
		make &amp;&amp; make install</p>
</blockquote>
<p>
	<strong>配置nginx.conf</strong>：</p>
<blockquote>
<p>#user&nbsp; nobody;<br />
		worker_processes&nbsp; 1;<br />
		error_log&nbsp; logs/error.log&nbsp; info;<br />
		events {<br />
		&nbsp;&nbsp;&nbsp; worker_connections&nbsp; 1024;<br />
		}<br />
		mail {<br />
		&nbsp;&nbsp;&nbsp; auth_http&nbsp; 指定IP:80/auth.php;<br />
		&nbsp;&nbsp;&nbsp; pop3_capabilities&nbsp; &quot;TOP&quot;&nbsp; &quot;USER&quot;;<br />
		&nbsp;&nbsp;&nbsp; imap_capabilities&nbsp; &quot;IMAP4rev1&quot;&nbsp; &quot;UIDPLUS&quot;;<br />
		&nbsp;&nbsp;&nbsp; <br />
		&nbsp;&nbsp;&nbsp; server {<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; listen&nbsp;&nbsp;&nbsp;&nbsp; 110;<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; protocol&nbsp;&nbsp; pop3;<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proxy&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; on;<br />
		&nbsp;&nbsp;&nbsp; }<br />
		&nbsp;&nbsp;&nbsp; server {<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; listen&nbsp;&nbsp;&nbsp;&nbsp; 143;<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; protocol&nbsp;&nbsp; imap;<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proxy&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; on;<br />
		&nbsp;&nbsp;&nbsp; }<br />
		&nbsp;&nbsp;&nbsp; server {<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; listen&nbsp;&nbsp;&nbsp; 25;<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; protocol&nbsp;&nbsp;&nbsp; smtp;<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; proxy&nbsp;&nbsp;&nbsp; on;<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; smtp_auth login plain;<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; xclient&nbsp;&nbsp;&nbsp; off;<br />
		&nbsp;&nbsp;&nbsp; }<br />
		}</p>
</blockquote>
<p><strong>说明：</strong><br />
	1.安装nginx时禁掉了http（&#8211;without-http），因为我们的目标只是转发pop3/smtp/imap请求，故nginx.conf也是相当简单，只有mail模块。如果还需要代理80端口（例如webmail），可以自行编译对http的支持。</p>
<p>	2.smtp的配置模块里必须加入xclient off，否则当nginx向后转发smtp请求时，postfix将报&ldquo;lost connection after XCLIENT&rdquo;，同时nginx报&ldquo;550 5.7.0 Error: insufficient authorization&rdquo;. nginx对smtp的代理，与pop3/imap是不同的，详细见后文。</p>
<p>	3.指定IP是用于认证的，需要放认证脚本auth.php. 认证脚本的作用就是验证用户和密码，一般自定义，可以放在任意的服务器上。本方案中选择放在后端邮件服务器上，便于管理。</p>
<p>	这里有一个问题，postfix本身已经集成了认证机制（本人采用的是cyrus sasl2+courier-authlib），为什么加了反向代理，认证过程就要移动到反向代理上呢？这样岂不是就变成非透明代理了吗？为什么不作纯碎的透明代理呢？<br />
	根据测试，如果这个认证脚本不设验证，直接透传所有pop3/imap请求到后端，在后端邮件服务器还会进行一次认证，但是对于smtp请求，将不再认证，而直接按照转发规则进行转发（因为反向代理的ip加到了postfix的mynetworks中，见后文）。这两种不同的差异应该是跟协议有关。<br />
	为了保持统一，在本文的方案中，auth.php集成了pop3/imap/smtp的三种认证。这样的功能架构类似于游戏服务器的，登录服务器和游戏服务器是分开的。</p>
<p>	4.在邮件服务器postfix/etc/main.cf中，修改mynetworks值，加入本反向代理的ip，并重载postfix：postfix -s reload</p>
<p>
	关于xclient：xclient的作用，是将前端的服务器模拟作为一个邮件客户端，而向后端的postfix进行认证和执行发送，但是postfix还需要一个打patch才能完美支持xclient。<br />
	关于此问题的讨论可以参见 <a href="http://forum.nginx.org/read.php?2,173197,173246#msg-173246" target="_blank">http://forum.nginx.org/read.php?2,173197,173246#msg-173246</a></p>
<p>	<strong>auth.php：</strong></p>
<blockquote>
<p>&lt;?php<br />
		/**<br />
		* @see xiabaibai.net<br />
		*/<br />
		if(!isset($_SERVER [&quot;HTTP_AUTH_USER&quot;] ) || ! isset($_SERVER [&quot;HTTP_AUTH_PASS&quot;] )) {<br />
		&nbsp;&nbsp;&nbsp; fail(0);<br />
		}<br />
		$username = $_SERVER [&quot;HTTP_AUTH_USER&quot;];<br />
		$userpass = $_SERVER [&quot;HTTP_AUTH_PASS&quot;];<br />
		$protocol = $_SERVER [&quot;HTTP_AUTH_PROTOCOL&quot;];</p>
<p>		$backend_port = 110;<br />
		if($protocol == &quot;imap&quot;) {<br />
		&nbsp;&nbsp;&nbsp; $backend_port = 143;<br />
		} elseif ($protocol == &quot;smtp&quot;) {<br />
		&nbsp;&nbsp;&nbsp; $backend_port = 25;<br />
		}</p>
<p>		list($uid, $domain) = explode(&quot;@&quot;, $username);</p>
<p>		$auth = authuser($username, $userpass);<br />
		if(!$auth) fail (-2);</p>
<p>		pass($_SERVER[&quot;SERVER_ADDR&quot;], $backend_port);</p>
<p>		//自定义认证，sql查询或者api<br />
		function authuser($user, $pass) {<br />
		&nbsp;&nbsp;&nbsp; return true;<br />
		}</p>
<p>		function fail($code) {<br />
		&nbsp;&nbsp;&nbsp; switch($code){<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; case 0: header(&quot;Auth-Status: Parameter lost&quot;); break;<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; case -1: header(&quot;Auth-Status: No Back-end Server&quot;); break;<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; case -2: header(&quot;Auth-Status: Invalid login or password&quot; ); break;<br />
		&nbsp;&nbsp;&nbsp; }<br />
		&nbsp;&nbsp;&nbsp; exit();<br />
		}</p>
<p>		function pass($server, $port) {<br />
		&nbsp;&nbsp;&nbsp; header(&quot;Auth-Status: OK&quot; );<br />
		&nbsp;&nbsp;&nbsp; header(&quot;Auth-Server: $server&quot; );<br />
		&nbsp;&nbsp;&nbsp; header(&quot;Auth-Port: $port&quot; );<br />
		&nbsp;&nbsp;&nbsp; exit();<br />
		}<br />
		&nbsp;<br />
		?&gt;</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://xiabaibai.net/2011/08/nginx-pop3-imap-smtp-reverse-proxy/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>24完结</title>
		<link>http://xiabaibai.net/2010/05/24-season8-en/</link>
		<comments>http://xiabaibai.net/2010/05/24-season8-en/#comments</comments>
		<pubDate>Tue, 25 May 2010 15:11:00 +0000</pubDate>
		<dc:creator>威廉</dc:creator>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[24]]></category>
		<category><![CDATA[杰克鲍尔]]></category>
		<category><![CDATA[美剧]]></category>
		<category><![CDATA[鲍尔]]></category>

		<guid isPermaLink="false">http://xiabaibai.net/?p=162</guid>
		<description><![CDATA[《24》终于完结了。虽然第八季的最后两集刚下完还没看，但是还是想提前感叹一下。8年，8季，一部最好看的电视剧在今天成为历史。它是我最早开始接触的美剧（貌似很多人最早看的是friends吧），陪我度过了5个年头，192个小时。英勇无比的鲍小强简直就是神话，他经历的险境给我们这些热血青年灌注了无比强大的个人英雄主义。即使现在好看的美剧那么多，还经常下载以后来不及看，但24仍然是每周第一时间收割的。水木美剧版上，已经有许多剧友发表感慨，缅怀一路看过的24。其实很多季的剧情已经记不得了，很多人物也都已模糊，但是那种让人绷紧神经的感觉仿佛已经深入脑中，滴答滴答的4声计时亦然余音绕梁。萨瑟兰饰演的鲍尔还是那么年轻、有气势（以前一直纳闷导演居然找了这么矮的一个演员演这么牛逼的特工），感觉他以后要是拍其他电影恐怕都难。24足以载入史册，与friends、越狱、lost等一并为广大美剧爱好者所称道。留此一文，谨以纪念。]]></description>
			<content:encoded><![CDATA[<p><span style="font-size: small;">《24》终于完结了。虽然第八季的最后两集刚下完还没看，但是还是想提前感叹一下。8年，8季，一部最好看的电视剧在今天成为历史。它是我最早开始接触的美剧（貌似很多人最早看的是friends吧），陪我度过了5个年头，192个小时。英勇无比的鲍小强简直就是神话，他经历的险境给我们这些热血青年灌注了无比强大的个人英雄主义。即使现在好看的美剧那么多，还经常下载以后来不及看，但24仍然是每周第一时间收割的。水木美剧版上，已经有许多剧友发表感慨，缅怀一路看过的24。其实很多季的剧情已经记不得了，很多人物也都已模糊，但是那种让人绷紧神经的感觉仿佛已经深入脑中，滴答滴答的4声计时亦然余音绕梁。萨瑟兰饰演的鲍尔还是那么年轻、有气势（以前一直纳闷导演居然找了这么矮的一个演员演这么牛逼的特工），感觉他以后要是拍其他电影恐怕都难。24足以载入史册，与friends、越狱、lost等一并为广大美剧爱好者所称道。留此一文，谨以纪念。</span></p>
<p><a href="http://xiabaibai.net/wp-content/uploads/2010/05/24.jpg"><img class="alignnone size-full wp-image-161" title="24" src="http://xiabaibai.net/wp-content/uploads/2010/05/24.jpg" alt="" width="293" height="391" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://xiabaibai.net/2010/05/24-season8-en/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>BMW之悦广告欣赏：缔造乐趣 分享感动</title>
		<link>http://xiabaibai.net/2010/04/bmw-advertise/</link>
		<comments>http://xiabaibai.net/2010/04/bmw-advertise/#comments</comments>
		<pubDate>Thu, 22 Apr 2010 13:06:17 +0000</pubDate>
		<dc:creator>威廉</dc:creator>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[BMW之悦]]></category>
		<category><![CDATA[广告]]></category>
		<category><![CDATA[缔造乐趣 分享感动]]></category>

		<guid isPermaLink="false">http://xiabaibai.net/?p=135</guid>
		<description><![CDATA[我们制造汽车 更创造无限激情 让灵感天马行空 让梦想化作现实 我们以创新定义未来 赋予科技情感 让每一次的体验 都带来心灵的感动 BMW之悦 缔造乐趣 分享感动 BMW的新广告创意，每一句的用词都那么完美，聆听即是享受。]]></description>
			<content:encoded><![CDATA[<p>我们制造汽车<br />
更创造无限激情<br />
让灵感天马行空<br />
让梦想化作现实<br />
我们以创新定义未来<br />
赋予科技情感<br />
让每一次的体验<br />
都带来心灵的感动<br />
BMW之悦<br />
缔造乐趣 分享感动</p>
<p>BMW的新广告创意，每一句的用词都那么完美，聆听即是享受。</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="400" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="align" value="middle" /><param name="src" value="http://player.youku.com/player.php/sid/XMTYzNTY0NzQ0/v.swf" /><param name="quality" value="high" /><embed type="application/x-shockwave-flash" width="480" height="400" src="http://player.youku.com/player.php/sid/XMTYzNTY0NzQ0/v.swf" quality="high" align="middle"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://xiabaibai.net/2010/04/bmw-advertise/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>diy了一台机子</title>
		<link>http://xiabaibai.net/2009/08/diy_anew_computer/</link>
		<comments>http://xiabaibai.net/2009/08/diy_anew_computer/#comments</comments>
		<pubDate>Sun, 30 Aug 2009 11:02:28 +0000</pubDate>
		<dc:creator>威廉</dc:creator>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[攒机]]></category>

		<guid isPermaLink="false">http://xiabaibai.net/?p=106</guid>
		<description><![CDATA[配置清单— CPU：AMD Athlon X2 240 410 主板：技嘉GA-M52L-S3P 430 硬盘：ST 500G SATA 350 内存：金士顿2G 800DDR2 187 显卡：讯景9500GT 425 显示器：Acer V203Hbd 860 光驱：先锋DVD刻录 205 鼠标键盘：罗技键鼠套装 138 机箱电源：航嘉彩钢套件 205 音箱：三水GS6000(61C) 180 总价3390 留此以作对比，说不定哪天又要攒机子。 另外在网上选配件的时候，发现一个神贴，价值一栋别墅的diy方案。显示器是夏普LB-1085，很有霸气。 原帖见 http://zj.zol.com.cn/diy/detail/1346240.html GS6000]]></description>
			<content:encoded><![CDATA[<p>配置清单—</p>
<p>CPU：AMD Athlon X2 240 410<br />
主板：技嘉GA-M52L-S3P 430<br />
硬盘：ST 500G SATA 350<br />
内存：金士顿2G 800DDR2 187<br />
显卡：讯景9500GT 425<br />
显示器：Acer V203Hbd 860<br />
光驱：先锋DVD刻录 205<br />
鼠标键盘：罗技键鼠套装 138<br />
机箱电源：航嘉彩钢套件 205<br />
音箱：三水GS6000(61C) 180</p>
<p>总价3390<br />
留此以作对比，说不定哪天又要攒机子。</p>
<p>另外在网上选配件的时候，发现一个神贴，价值一栋别墅的diy方案。显示器是<a class="wpGallery" title="夏普LB-1085" href="http://detail.zol.com.cn/lcd/index189437.shtml" target="_blank"><span class="hei16b" title="夏普LB-1085">夏普LB-1085</span></a>，很有霸气。<br />
<img class="alignnone size-full wp-image-107" title="top_diy" src="http://xiabaibai.net/wp-content/uploads/2009/08/top_diy.png" alt="top_diy" width="623" height="653" /></p>
<p>原帖见 <a class="wpGallery" href="http://zj.zol.com.cn/diy/detail/1346240.html" target="_blank">http://zj.zol.com.cn/diy/detail/1346240.html</a></p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 45px; width: 1px; height: 1px;">GS6000</div>
]]></content:encoded>
			<wfw:commentRss>http://xiabaibai.net/2009/08/diy_anew_computer/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Moved from MSN space</title>
		<link>http://xiabaibai.net/2008/11/hello-world/</link>
		<comments>http://xiabaibai.net/2008/11/hello-world/#comments</comments>
		<pubDate>Wed, 26 Nov 2008 16:08:14 +0000</pubDate>
		<dc:creator>威廉</dc:creator>
				<category><![CDATA[未分类]]></category>

		<guid isPermaLink="false">http://xiabaibai.net/wordpress/?p=1</guid>
		<description><![CDATA[partially..]]></description>
			<content:encoded><![CDATA[<p>partially..</p>
]]></content:encoded>
			<wfw:commentRss>http://xiabaibai.net/2008/11/hello-world/feed/</wfw:commentRss>
		<slash:comments>167</slash:comments>
		</item>
	</channel>
</rss>

