<?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>&#22823;&#34430;&#30340;&#23398;&#20064;&#31354;&#38388; &#187; linux 服务器安装</title>
	<atom:link href="http://blog.fabrichina.net/archives/category/linux-%e6%9c%8d%e5%8a%a1%e5%99%a8%e5%ae%89%e8%a3%85/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.fabrichina.net</link>
	<description>PHP SEO &#30005;&#23376;&#21830;&#21153;&#26550;&#26500;</description>
	<lastBuildDate>Mon, 16 Jan 2012 09:32:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>varnish 3.0安装</title>
		<link>http://blog.fabrichina.net/archives/570</link>
		<comments>http://blog.fabrichina.net/archives/570#comments</comments>
		<pubDate>Tue, 16 Aug 2011 06:22:58 +0000</pubDate>
		<dc:creator>Albert</dc:creator>
				<category><![CDATA[linux 服务器安装]]></category>

		<guid isPermaLink="false">http://blog.fabrichina.net/?p=570</guid>
		<description><![CDATA[./configure &#8211;prefix=/usr/local/varnish 总是告诉我libpcre错误，我都安装了还是错误 yum install -y automake autoconf libtool ncurses-devel libxslt groff pcre-devel pkgconfig  然后再configure就好了。。 用ctrl+f5来清除缓存 sub vcl_hit {     if ( req.http.Pragma ~ &#8220;no-cache&#8221; ) {         set obj.ttl = 0s ;         return (pass);     }     return (deliver); } acl   local {     &#8220;192.168.0.25&#8243;;       &#8220;1.2.3.4&#8243;; }   if (client.ip ~ local &#38;&#38; req.http.Pragma ~ &#8220;no-cache&#8221;)   IP限制  if ( req.http.Cookie ~ &#8220;pwd=123456&#8243; [...]]]></description>
			<content:encoded><![CDATA[<p>./configure &#8211;prefix=/usr/local/varnish</p>
<p>总是告诉我libpcre错误，我都安装了还是错误</p>
<p>yum install -y automake autoconf libtool ncurses-devel libxslt groff pcre-devel pkgconfig </p>
<p>然后再configure就好了。。</p>
<p>用ctrl+f5来清除缓存</p>
<p>sub vcl_hit {<br />
    if ( req.http.Pragma ~ &#8220;no-cache&#8221; ) {<br />
        set obj.ttl = 0s ;<br />
        return (pass);<br />
    }<br />
    return (deliver);<br />
}</p>
<p>acl   local {<br />
    &#8220;192.168.0.25&#8243;;<br />
      &#8220;1.2.3.4&#8243;;<br />
}<br />
  if (client.ip ~ local &amp;&amp; req.http.Pragma ~ &#8220;no-cache&#8221;)   IP限制</p>
<p> if ( req.http.Cookie ~ &#8220;pwd=123456&#8243; &amp;&amp; req.http.Pragma ~ &#8220;no-cache&#8221; )   cookie密码限制</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fabrichina.net/archives/570/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>服务器load average高cpu低io低，问题解决</title>
		<link>http://blog.fabrichina.net/archives/494</link>
		<comments>http://blog.fabrichina.net/archives/494#comments</comments>
		<pubDate>Sat, 04 Dec 2010 07:13:15 +0000</pubDate>
		<dc:creator>Albert</dc:creator>
				<category><![CDATA[linux 服务器安装]]></category>

		<guid isPermaLink="false">http://blog.fabrichina.net/?p=494</guid>
		<description><![CDATA[top &#8211; 00:59:35 up 120 days, 18:56,  2 users,  load average: 1.48, 1.44, 1.27 Tasks: 159 total,   1 running, 158 sleeping,   0 stopped,   0 zombie Cpu(s):  0.0%us,  0.0%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.2%si,  0.0%st Mem:   8164756k total,  8071612k used,    93144k free,   631196k buffers Swap: 10217332k total,        0k used, 10217332k free,  6238060k cached   PID USER      [...]]]></description>
			<content:encoded><![CDATA[<p>top &#8211; 00:59:35 up 120 days, 18:56,  2 users,  load average: 1.48, 1.44, 1.27<br />
Tasks: 159 total,   1 running, 158 sleeping,   0 stopped,   0 zombie<br />
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.2%si,  0.0%st<br />
Mem:   8164756k total,  8071612k used,    93144k free,   631196k buffers<br />
Swap: 10217332k total,        0k used, 10217332k free,  6238060k cached</p>
<p>  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                                                        <br />
 3897 www       15   0  466m  53m  26m S  0.3  0.7   9:17.91 nginx</p>
<p>vmstat<br />
procs &#8212;&#8212;&#8212;&#8211;memory&#8212;&#8212;&#8212;- &#8212;swap&#8211; &#8212;&#8211;io&#8212;- &#8211;system&#8211; &#8212;&#8211;cpu&#8212;&#8212;<br />
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st<br />
 0  0      0  95788 631196 6237800    0    0     0     3    0    0  0  0 100  0  0</p>
<p>hdparm -tT /dev/sda1</p>
<p>/dev/sda1:<br />
 Timing cached reads:   15772 MB in  2.00 seconds = 7895.32 MB/sec<br />
 Timing buffered disk reads:  100 MB in  1.37 seconds =  72.96 MB/sec</p>
<p>hdparm -tT /dev/sdb</p>
<p>/dev/sdb:<br />
 Timing cached reads:   15628 MB in  2.00 seconds = 7822.64 MB/sec<br />
 Timing buffered disk reads:  182 MB in  3.07 seconds =  59.29 MB/sec</p>
<p>/etc/rc.d/init.d/nfslock start<br />
Starting NFS statd: [  OK  ]<br />
[root@Cache-Server ~]# /etc/rc.d/init.d/nfslock stop<br />
Stopping NFS statd: [  OK  ]<br />
[root@Cache-Server ~]# top</p>
<p>top &#8211; 01:09:50 up 120 days, 19:06,  2 users,  load average: 0.47, 0.97, 1.15</p>
<p>总而言之，从起了nfslock服务，load就下来了</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fabrichina.net/archives/494/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>pptpd 源代码安装</title>
		<link>http://blog.fabrichina.net/archives/440</link>
		<comments>http://blog.fabrichina.net/archives/440#comments</comments>
		<pubDate>Thu, 26 Aug 2010 08:20:55 +0000</pubDate>
		<dc:creator>Albert</dc:creator>
				<category><![CDATA[linux 服务器安装]]></category>

		<guid isPermaLink="false">http://blog.fabrichina.net/?p=440</guid>
		<description><![CDATA[wget http://www.sfr-fresh.com/linux/misc/pptpd-1.3.4.tar.gz tar .. ./configure &#38;&#38; make &#38;&#38; make install cp samples/pptpd.conf /etc/. cp samples/options.pptpd /etc/ppp/. cp samples/chap-secrets /etc/ppp/. cp pptpd.init /etc/rc.d/init.d/pptpd chmod +x /etc/rc.d/init.d/pptpd /etc/rc.d/init.d/pptpd start 编辑/etc/sysctl.conf，看一下net.ipv4.ip_forward参数是不是1。 改完一个sysctl -p一下 iptables -A INPUT -p tcp &#8211;dport 1723 -j ACCEPT iptables -A INPUT -p tcp &#8211;dport 47 -j ACCEPT iptables -A INPUT -p gre -j ACCEPT [...]]]></description>
			<content:encoded><![CDATA[<p>wget http://www.sfr-fresh.com/linux/misc/pptpd-1.3.4.tar.gz<br />
tar ..<br />
./configure &amp;&amp; make &amp;&amp; make install<br />
cp samples/pptpd.conf /etc/.<br />
cp samples/options.pptpd /etc/ppp/.<br />
cp samples/chap-secrets /etc/ppp/.<br />
cp pptpd.init /etc/rc.d/init.d/pptpd<br />
chmod +x /etc/rc.d/init.d/pptpd<br />
/etc/rc.d/init.d/pptpd start<br />
编辑/etc/sysctl.conf，看一下net.ipv4.ip_forward参数是不是1。<br />
改完一个sysctl -p一下</p>
<p><span style="text-decoration: underline;">iptables -A INPUT -p tcp &#8211;dport 1723 -j ACCEPT</span></p>
<p><span style="text-decoration: underline;">iptables -A INPUT -p tcp &#8211;dport 47 -j ACCEPT</span></p>
<p><span style="text-decoration: underline;">iptables -A INPUT -p gre -j ACCEPT</span></p>
<p><span style="text-decoration: underline;">iptables -t nat -A POSTROUTING -s 192.168.8.0/24 -o eth0 -j MASQUERADE</span></p>
<p>完成后输入<span style="text-decoration: underline;">/etc/init.d/iptables save</span>保存，并且输入<span style="text-decoration: underline;">/etc/init.d/iptables restart</span>重新启动。</p>
<p>我连接的时候出现了vpn 619错误，查了一下是路由器nat -t上pptp nat穿透选项的问题，但是我另外一个vpn是可以用的，所以我还需要研究一下为什么另外一个能用！</p>
<p>可能是服务器的机房路由器没有开启pptp的通过，我已经open ticket让他们开了，看看开了以后会不会就好了！</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fabrichina.net/archives/440/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>varnish 设置header和forward IP设置问题</title>
		<link>http://blog.fabrichina.net/archives/330</link>
		<comments>http://blog.fabrichina.net/archives/330#comments</comments>
		<pubDate>Mon, 26 Jul 2010 09:10:06 +0000</pubDate>
		<dc:creator>Albert</dc:creator>
				<category><![CDATA[linux 服务器安装]]></category>

		<guid isPermaLink="false">http://blog.fabrichina.net/?p=330</guid>
		<description><![CDATA[What is the purpose of the X-Varnish HTTP header? The X-Varnish HTTP header allows you to find the correct log-entries for the transaction. For a cache hit, X-Varnish will contain both the ID of the current request and the ID of the request that populated the cache. It makes debugging Varnish a lot easier. Does [...]]]></description>
			<content:encoded><![CDATA[<p><strong>What is the purpose of the X-Varnish HTTP header?</strong></p>
<p>The X-Varnish HTTP header allows you to find the correct log-entries for the transaction. For a cache hit, X-Varnish will contain both the ID of the current request and the ID of the request that populated the cache. It makes debugging Varnish a lot easier.</p>
<p><strong>Does Varnish support compression?</strong></p>
<p>This is a simple question with a complicated answer; see <a href="http://varnish-cache.org/wiki/FAQ/Compression">WIKI</a>.</p>
<p><strong>How do I add a HTTP header?</strong></p>
<p>To add a HTTP header, unless you want to add something about the client/request, it is best done in vcl_fetch as this means it will only be processed every time the object is fetched:</p>
<pre>sub vcl_fetch {
  # Add a unique header containing the cache servers IP address:
  remove obj.http.X-Varnish-IP;
  set    obj.http.X-Varnish-IP = server.ip;
  # Another header:
  set    obj.http.Foo = "bar";
}</pre>
<p><strong>How can I log the client IP address on the backend?</strong></p>
<p>All I see is the IP address of the varnish server. How can I log the client IP address?</p>
<p>We will need to add the IP address to a header used for the backend request, and configure the backend to log the content of this header instead of the address of the connecting client (which is the varnish server).</p>
<p>Varnish configuration:</p>
<pre>sub vcl_recv {
  # Add a unique header containing the client address
  remove req.http.X-Forwarded-For;
  set    req.http.X-Forwarded-For = client.ip;
  # [...]
}</pre>
<p>For the apache configuration, we copy the “combined” log format to a new one we call “varnishcombined”, for instance, and change the client IP field to use the content of the variable we set in the varnish configuration:</p>
<pre>LogFormat "%{X-Forwarded-For}i %l %u %t "%r" %&gt;s %b "%{Referer}i" "%{User-Agent}i"" varnishcombined</pre>
<p>And so, in our virtualhost, you need to specify this format instead of “combined” (or “common”, or whatever else you use):</p>
<pre>&lt;VirtualHost *:80&gt;
  ServerName www.example.com
  # [...]
  CustomLog /var/log/apache2/www.example.com/access.log varnishcombined
  # [...]
&lt;/VirtualHost&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.fabrichina.net/archives/330/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>/usr/bin/ld: cannot find -lltdl php安装错误，libmcrypt编译问题</title>
		<link>http://blog.fabrichina.net/archives/323</link>
		<comments>http://blog.fabrichina.net/archives/323#comments</comments>
		<pubDate>Sun, 25 Jul 2010 06:47:25 +0000</pubDate>
		<dc:creator>Albert</dc:creator>
				<category><![CDATA[linux 服务器安装]]></category>
		<category><![CDATA[PHP语言学习]]></category>

		<guid isPermaLink="false">http://blog.fabrichina.net/?p=323</guid>
		<description><![CDATA[/usr/bin/ld: cannot find -lltdl /usr/bin/ld: cannot find -lltdl 安装php make的时候提示如下出错信息： /usr/bin/ld: cannot find -lltdl collect2: ld returned 1 exit status make: *** [libphp5.la] Error 1 解决方法：这是因为找不到：   libltdl库文件 ldconfig -p &#124;grep ltdl #/software/libmcrypt-2.5.8/libltdl #./configure  –enable-ltdl-install #make #make install 以下是原文： Then I visited http://mcrypt.hellug.gr/mcrypt/index.html an learned that I have to install not only libmcrypt but also mcrypt [...]]]></description>
			<content:encoded><![CDATA[<h3>/usr/bin/ld: cannot find -lltdl</h3>
<div>
<p>/usr/bin/ld: cannot find -lltdl<br />
安装php make的时候提示如下出错信息：<br />
/usr/bin/ld: cannot find -lltdl<br />
collect2: ld returned 1 exit status<br />
make: *** [libphp5.la] Error 1<br />
解决方法：这是因为找不到：   libltdl库文件</p>
<p>ldconfig -p |grep ltdl<br />
#/software/libmcrypt-2.5.8/libltdl<br />
#./configure  –enable-ltdl-install<br />
#make<br />
#make install<br />
以下是原文：<br />
Then I visited<br />
<a href="http://mcrypt.hellug.gr/mcrypt/index.html">http://mcrypt.hellug.gr/mcrypt/index.html</a><br />
an learned that I have to install not only libmcrypt<br />
but also mcrypt and libmhash.<br />
Here is the to do:<br />
libmcrytp:<br />
———–<br />
download libmcrypt-xxx.tar.gz<br />
create the following directory:  / usr / local / libmcrypt<br />
copy the libmcrypt-xxx.tar.gz into that directory and move to it<br />
run the following shell (&gt;) commands:  (‘xxx’ is the version number)<br />
&gt; gunzip -c libmcrypt-xxx.tar.gz | tar xf -<br />
&gt; cd libmcrypt-xxx<br />
&gt; ./configure –disable-posix-threads<br />
&gt; make<br />
&gt; make check  (note:  ‘make check’ is optional)<br />
&gt; make install<br />
then (update your environment) add in / etc / profile the following path:<br />
/usr/local/libmcrypt/libmcrypt-xxxx<br />
(note:  as I run Red Hat 7.3 I  set the line   a f t e r   the if-part<br />
(id -u = 0 …) with: pathmunge /usr/local / libm….)<br />
and add in / etc / ld.so.conf the following path:  /usr/local/lib<br />
then run ldconfig:<br />
&gt; ldconfig<br />
now comes the important part:<br />
&gt; cd /usr/local/libmcrypt/libmcrypt-xxx/libltdl<br />
&gt; ./configure –enable-ltdl-install<br />
&gt; make<br />
&gt; make install<br />
(maybe not needed:  I also added a link in / usr / bin: )<br />
(&gt; cd /usr/bin)<br />
(&gt; ln -s /usr/lib/libltdl.so.3.1.0 ltdl)</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.fabrichina.net/archives/323/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>linux一些常用指令</title>
		<link>http://blog.fabrichina.net/archives/319</link>
		<comments>http://blog.fabrichina.net/archives/319#comments</comments>
		<pubDate>Fri, 23 Jul 2010 09:04:22 +0000</pubDate>
		<dc:creator>Albert</dc:creator>
				<category><![CDATA[linux 服务器安装]]></category>
		<category><![CDATA[PHP语言学习]]></category>

		<guid isPermaLink="false">http://blog.fabrichina.net/?p=319</guid>
		<description><![CDATA[1.按内存从大到小排列进程: ps -eo &#8220;%C : %p : %z : %a&#8221;&#124;sort -k5 -nr 2.查看当前有哪些进程；查看进程打开的文件: ps -A ；lsof -p PID 3.获取当前IP地址（从中学习grep,awk,cut的作用） ifconfig eth0 &#124;grep &#8220;inet addr:&#8221; &#124;awk &#8216;{print $2}&#8217;&#124;cut -c 6- 4.统计每个单词出现的频率，并排序 awk &#8216;{arr[$1]+=1 }END{for(i in arr){print arr&#8221;\t&#8221;i}}&#8217; 文件名 &#124; sort -rn 5.显示10条最常用的命令 sed -e &#8220;s/&#124; /\n/g&#8221; ~/.bash_history &#124; cut -d &#8216; &#8216; -f 1 &#124; sort [...]]]></description>
			<content:encoded><![CDATA[<p>1.按内存从大到小排列进程:<br />
ps -eo &#8220;%C : %p : %z : %a&#8221;|sort -k5 -nr</p>
<p>2.查看当前有哪些进程；查看进程打开的文件:<br />
ps -A ；lsof -p PID</p>
<p>3.获取当前IP地址（从中学习grep,awk,cut的作用）<br />
ifconfig eth0 |grep &#8220;inet addr:&#8221; |awk &#8216;{print $2}&#8217;|cut -c 6-</p>
<p>4.统计每个单词出现的频率，并排序<br />
awk &#8216;{arr[$1]+=1 }END{for(i in arr){print arr&#8221;\t&#8221;i}}&#8217; 文件名 | sort -rn</p>
<p>5.显示10条最常用的命令<br />
sed -e &#8220;s/| /\n/g&#8221; ~/.bash_history | cut -d &#8216; &#8216; -f 1 | sort | uniq -c | sort -nr | head<span id="more-319"></span></p>
<p>6.杀死Nginx进程(杀死某一进程)<br />
ps -ef|grep -v grep |grep nginx|awk &#8216;{print $2}&#8217; 或<br />
for i in `ps aux | grep nginx | grep -v grep | awk {&#8216;print $2&#8242;}` ; do kill $i; done</p>
<p>7.列出当前文件夹目录大小，以G，M，K显示。<br />
du -b &#8211;max-depth 1 | sort -nr | perl -pe &#8216;s{([0-9]+)}{sprintf&#8221;%.1f%s&#8221;, $1&gt;=2**30? ($1/2**30, &#8220;G&#8221;): $1&gt;=2**20? ($1/2**20, &#8220;M&#8221;):$1&gt;=2**10? ($1/2**10, &#8220;K&#8221;): ($1, &#8220;&#8221;)}e&#8217;</p>
<p>shaw答案 ：du -hs $(du -sk ./`ls -F |grep /` |sort -nr |awk &#8216;{print $NF}&#8217;)<br />
也可 以实现，不过不是特别完美。但好记。</p>
<p>8.清空linux buffer cache<br />
sync &amp;&amp; echo 3 &gt; /proc/sys/vm/drop_caches</p>
<p>9.将当前目录文件名全部转换成小写<br />
for i in *; do mv &#8220;$i&#8221; &#8220;$(echo $i|tr A-Z a-z)&#8221;; done</p>
<p>10.消除vim中的^M的几种方法<br />
1)dos2uninx filename<br />
2)sed -e &#8216;s/^M//&#8217; filename<br />
3)vim中 :s/^M//gc<br />
4)col -bx &lt; dosfile &gt; newfile<br />
5)tr -s &#8220;\r\n&#8221; &#8220;\n&#8221; &lt; file &gt; newfile</p>
<p>11. 清除所有arp缓存<br />
arp -n|awk &#8216;/^[1-9]/ {print &#8220;arp -d &#8220;$1}&#8217;|sh</p>
<p>12. 绑定已知机器的arp地址<br />
cat /proc/net/arp | awk &#8216;{print $1 &#8221; &#8221; $4}&#8217; |sort -t. -n +3 -4 &gt; /etc/ethers</p>
<p>补perl的可以不？</p>
<p>13. perl -ne &#8216;m/^([^#][^\s=]+)\s*(=.*|)/ &amp;&amp; printf(&#8220;%-35s%s\n&#8221;, $1, $2)&#8217; /etc</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fabrichina.net/archives/319/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>varnish 2.x启动指令和配置</title>
		<link>http://blog.fabrichina.net/archives/315</link>
		<comments>http://blog.fabrichina.net/archives/315#comments</comments>
		<pubDate>Fri, 23 Jul 2010 06:37:23 +0000</pubDate>
		<dc:creator>Albert</dc:creator>
				<category><![CDATA[linux 服务器安装]]></category>
		<category><![CDATA[PHP语言学习]]></category>

		<guid isPermaLink="false">http://blog.fabrichina.net/?p=315</guid>
		<description><![CDATA[Varnish 2.0.3 has just been released. This release contains multiple changes, amongst them: Support for backend timeouts Multiple fixes in how we process ESI restart in vcl_hit is now supported Documentation has been updated Expiry processing is now more scalable The default session workspace is now 16k instead of 8k More graceful handling of too [...]]]></description>
			<content:encoded><![CDATA[<p>Varnish 2.0.3 has just been released. This release contains multiple changes, amongst them:</p>
<ul>
<li>Support for backend timeouts</li>
<li>Multiple fixes in how we process ESI</li>
<li><tt>restart</tt> in vcl_hit is now supported</li>
<li>Documentation has been updated</li>
<li>Expiry processing is now more scalable</li>
<li>The default session workspace is now 16k instead of 8k</li>
<li>More graceful handling of too many headers from the client or the server.</li>
<li>More expressive purges</li>
</ul>
<p>之前一直使用的还是2.0的一个trunk的R2860版本，因为只有这个版本我从1.1.2升级上来以后没有慢的问题⊙﹏⊙。但是看着新版却一直不能用，实在是让人心里痒。于是抱着死磕到底的态度，在检查了n+1遍配置文件和修改启动参数重启了n+1遍Varnish以后终于找到了问题的所在，即启动参数的-w这个上面。那么这个参数是干什么用的呢？</p>
<p>    -w int[,int[,int]]           # Number of worker threads<br />
                                 #   -w &lt;fixed_count&gt;<br />
                                 #   -w min,max<br />
                                 #   -w min,max,timeout [default: -w2,500,300]</p>
<p>可以看出这个参数是控制每个进程的线程数的，1.1.2版本的时候这个参数我配置的是-w30000,51200,10，貌似到了2.0版以后这个最小启动的线程数不能设定过大，于是在进行了几次调试以后最终将参数定为了-w5,51200,30</p>
<p><strong>软件列表</strong><br />
pcre-8.02.tar.gz<br />
varnish-2.1.tar.gz</p>
<p><strong>软件存放位置</strong><br />
/data/software</p>
<p><strong>安装过程</strong><br />
# /usr/sbin/groupadd www -g 48<br />
# /usr/sbin/useradd -u 48 -g www www<br />
# mkdir -p /data/vcache<br />
# chmod +w /data/vcache<br />
# chown -R www:www /data/vcache<br />
# mkdir -p /var/log/varnish<br />
# chmod +w /var/log/varnish<br />
# chown -R www:www /var/log/varnish<br />
# cd /data/software/pkg<br />
# tar zxvf ../pcre-8.02.tar.gz<br />
# cd pcre-8.02<br />
# ./configure<br />
# make &amp;&amp; make install<br />
# cd ..<br />
# tar zxvf ../varnish-2.1.tar.gz<br />
# cd varnish-2.1<br />
# export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig<br />
# ./configure &#8211;prefix=/usr/local/varnish<br />
# make &amp;&amp; make install</p>
<p><strong>编辑Varnish配置文件</strong><br />
# vi /usr/local/varnish/vcl.conf</p>
<p>backend webserver {<br />
       set backend.host = &#8220;10.10.10.8&#8243;;<br />
       set backend.port = &#8220;80&#8243;;<br />
}</p>
<p>acl purge {<br />
       &#8220;localhost&#8221;;<br />
       &#8220;127.0.0.1&#8243;;<br />
       &#8220;10.10.10.0&#8243;/24;<br />
}</p>
<p>sub vcl_recv {<br />
        remove req.http.X-Forwarded-For;<br />
        set    req.http.X-Forwarded-For = client.ip;<br />
        if (req.request == &#8220;PURGE&#8221;) {<br />
               if (!client.ip ~ purge) {<br />
                       error 405 &#8220;Not allowed.&#8221;;<br />
               }<br />
               lookup;<br />
       }</p>
<p>       if (req.http.host ~ &#8220;(a|b|c).test.com&#8221;) {<br />
               set req.backend = webserver;<br />
              if (req.url ~ &#8220;\.(png|gif|jpg|swf|css|js)$&#8221;) {<br />
                       lookup;<br />
        }<br />
               else {<br />
                       pass;<br />
               }<br />
       }</p>
<p>       else {<br />
               error 404 &#8220;Test Cache Server&#8221;;<br />
               pipe;<br />
       }<br />
}</p>
<p>sub vcl_hash {<br />
    set req.hash += req.url;<br />
    if (req.http.host) {<br />
        set req.hash += req.http.host;<br />
    } else {<br />
        set req.hash += server.ip;<br />
    }<br />
    hash;<br />
}</p>
<p>sub vcl_pipe {<br />
        set req.http.connection = &#8220;close&#8221;;<br />
        #pipe;<br />
}</p>
<p>sub vcl_hit {<br />
        if (!obj.cacheable) {<br />
                pass;<br />
        }<br />
       if (req.request == &#8220;PURGE&#8221;) {<br />
               set obj.ttl = 0s;<br />
               error 200 &#8220;Purged.&#8221;;<br />
       }<br />
        deliver;<br />
}</p>
<p>sub vcl_miss {<br />
       if (req.request == &#8220;PURGE&#8221;) {<br />
               error 404 &#8220;Not in cache.&#8221;;<br />
       }<br />
}</p>
<p>sub vcl_fetch {<br />
               set obj.ttl = 180s;<br />
               #set    obj.http.X-Varnish-IP = server.ip;<br />
               set    obj.http.Varnish = &#8220;Tested by Kevin&#8221;;<br />
}</p>
<p><strong>启动Varnish</strong><br />
# /usr/local/varnish/sbin/varnishd -n /data/vcache -f /usr/local/varnish/etc/varnish/default.vcl -a 10.10.10.8:80 -s file,/data/vcache/varnish_cache.data,50G -u www -w2,65536,60 -T 127.0.0.1:3600 -p thread_pool_min=200 -p thread_pool_max=4000 -p thread_pools=4 -p thread_pool_add_delay=2 -p listen_depth=4096 -p lru_interval=20</p>
<p><strong>启动日志记录</strong><br />
#/usr/local/varnish/bin/varnishncsa -n /data/vcache -w /var/log/varnish/varnish.log &amp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fabrichina.net/archives/315/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>php-fpm vs nginx vs unix socket</title>
		<link>http://blog.fabrichina.net/archives/312</link>
		<comments>http://blog.fabrichina.net/archives/312#comments</comments>
		<pubDate>Wed, 21 Jul 2010 02:57:58 +0000</pubDate>
		<dc:creator>Albert</dc:creator>
				<category><![CDATA[linux 服务器安装]]></category>
		<category><![CDATA[PHP语言学习]]></category>

		<guid isPermaLink="false">http://blog.fabrichina.net/?p=312</guid>
		<description><![CDATA[nginx修改 fastcgi_pass unix:/tmp/nginx.socket; php-fpm.conf修改 listen = /tmp/nginx.socket 重启php-fpm 重启nginx 搞定。。不过不知道能有多大改善。。难说。。。。]]></description>
			<content:encoded><![CDATA[<p>nginx修改<br />
fastcgi_pass unix:/tmp/nginx.socket;</p>
<p>php-fpm.conf修改<br />
listen = /tmp/nginx.socket<br />
重启php-fpm 重启nginx 搞定。。不过不知道能有多大改善。。难说。。。。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fabrichina.net/archives/312/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>php-fpm vs php 5.3+ 启动指令</title>
		<link>http://blog.fabrichina.net/archives/309</link>
		<comments>http://blog.fabrichina.net/archives/309#comments</comments>
		<pubDate>Wed, 21 Jul 2010 02:38:00 +0000</pubDate>
		<dc:creator>Albert</dc:creator>
				<category><![CDATA[linux 服务器安装]]></category>
		<category><![CDATA[PHP语言学习]]></category>

		<guid isPermaLink="false">http://blog.fabrichina.net/?p=309</guid>
		<description><![CDATA[php-5.3.2/sapi/fpm/init.d.php-fpm 这个东西在源始代码里面，copy出来用就可以了，这个脚本可以start stop reload fpm就和5.2+的那个脚本一样了！]]></description>
			<content:encoded><![CDATA[<p>php-5.3.2/sapi/fpm/init.d.php-fpm</p>
<p>这个东西在源始代码里面，copy出来用就可以了，这个脚本可以start stop reload fpm就和5.2+的那个脚本一样了！</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fabrichina.net/archives/309/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>编译php-fpm cgi模式</title>
		<link>http://blog.fabrichina.net/archives/307</link>
		<comments>http://blog.fabrichina.net/archives/307#comments</comments>
		<pubDate>Tue, 20 Jul 2010 10:56:26 +0000</pubDate>
		<dc:creator>Albert</dc:creator>
				<category><![CDATA[linux 服务器安装]]></category>
		<category><![CDATA[PHP语言学习]]></category>

		<guid isPermaLink="false">http://blog.fabrichina.net/?p=307</guid>
		<description><![CDATA[./configure &#8211;prefix=/usr/local/php &#8211;with-mysqli=/usr/local/mysql/bin/mysql_config &#8211;with-mysql=/usr/local/mysql &#8211;with-config-file-path=/usr/local/php/etc &#8211;with-curl &#8211;with-zlib &#8211;enable-ftp  &#8211;with-mcrypt &#8211;enable-inline-optimization &#8211;disable-debug &#8211;with-gd &#8211;enable-gd-native-ttf &#8211;enable-gd-jis-conv &#8211;with-iconv-dir=/usr/local &#8211;with-freetype-dir=/usr/local/lib/freetype &#8211;with-jpeg-dir=/usr/local &#8211;with-png-dir=/usr/local &#8211;with-zlib &#8211;with-libxml-dir=/usr/local/lib/libxml &#8211;enable-xml &#8211;enable-exif &#8211;enable-soap &#8211;enable-zip &#8211;with-openssl &#8211;enable-mbstring &#8211;with-mhash &#8211;with-tidy &#8211;enable-fastcgi &#8211;enable-fpm &#8211;enable-force-cgi-redirect &#8211;enable-mbstring make ZEND_EXTRA_LIBS=&#8217;-liconv&#8217; make install]]></description>
			<content:encoded><![CDATA[<p>./configure &#8211;prefix=/usr/local/php &#8211;with-mysqli=/usr/local/mysql/bin/mysql_config &#8211;with-mysql=/usr/local/mysql &#8211;with-config-file-path=/usr/local/php/etc &#8211;with-curl &#8211;with-zlib &#8211;enable-ftp  &#8211;with-mcrypt &#8211;enable-inline-optimization &#8211;disable-debug &#8211;with-gd &#8211;enable-gd-native-ttf &#8211;enable-gd-jis-conv &#8211;with-iconv-dir=/usr/local &#8211;with-freetype-dir=/usr/local/lib/freetype &#8211;with-jpeg-dir=/usr/local &#8211;with-png-dir=/usr/local &#8211;with-zlib &#8211;with-libxml-dir=/usr/local/lib/libxml &#8211;enable-xml &#8211;enable-exif &#8211;enable-soap &#8211;enable-zip &#8211;with-openssl &#8211;enable-mbstring &#8211;with-mhash &#8211;with-tidy &#8211;enable-fastcgi &#8211;enable-fpm &#8211;enable-force-cgi-redirect &#8211;enable-mbstring</p>
<p>make ZEND_EXTRA_LIBS=&#8217;-liconv&#8217;</p>
<p>make install</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fabrichina.net/archives/307/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>libtidy 安装</title>
		<link>http://blog.fabrichina.net/archives/304</link>
		<comments>http://blog.fabrichina.net/archives/304#comments</comments>
		<pubDate>Tue, 20 Jul 2010 09:12:41 +0000</pubDate>
		<dc:creator>Albert</dc:creator>
				<category><![CDATA[linux 服务器安装]]></category>
		<category><![CDATA[PHP语言学习]]></category>

		<guid isPermaLink="false">http://blog.fabrichina.net/?p=304</guid>
		<description><![CDATA[wget http://tidy.sourceforge.net/src/old/tidy_src_051026.tgz gunzip tidy-xxxx.tgz tar -xvf tidy-xxxx.tar cd tidy sh build/gnuauto/setup.sh 按照提示装就行了！]]></description>
			<content:encoded><![CDATA[<li>wget <a href="http://tidy.sourceforge.net/src/old/tidy_src_051026.tgz" target="_top">http://tidy.sourceforge.net/src/old/tidy_src_051026.tgz</a></li>
<li>gunzip tidy-xxxx.tgz</li>
<li>tar -xvf tidy-xxxx.tar</li>
<li>cd tidy</li>
<li>sh build/gnuauto/setup.sh</li>
<p>按照提示装就行了！</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fabrichina.net/archives/304/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Squid3.0与2.7的配置差异</title>
		<link>http://blog.fabrichina.net/archives/300</link>
		<comments>http://blog.fabrichina.net/archives/300#comments</comments>
		<pubDate>Tue, 20 Jul 2010 02:51:20 +0000</pubDate>
		<dc:creator>Albert</dc:creator>
				<category><![CDATA[linux 服务器安装]]></category>
		<category><![CDATA[PHP语言学习]]></category>

		<guid isPermaLink="false">http://blog.fabrichina.net/?p=300</guid>
		<description><![CDATA[Squid3.0最重要的新特性: Code converted to C++, with significant internal restructuring and rewrites. ICAP implementation (RFC 3507 and www.icap-forum.org) Edge Side Includes (ESI) implementation (www.esi.org) 更多的请参考官方说明 来说说配置方法的不同之处（只说我自己实际使用的） ./configure的配置项 ./configure &#8211;prefix=/usr/local/squid &#8211;with-large-files &#8211;enable-useragent-log &#8211;enable-referer-log &#8211;enable-linux-netfilter &#8211;enable-x-accelerator-vary &#8211;disable-internal-dns &#8211;disable-mempools &#8211;with-maxfd=65535 3.0版本去掉了以下选项: &#8211;enable-dlmalloc    不再需要 &#8211;enable-epoll    系统会自己选择最优的I/O Loop Method &#8211;enable-truncate     不再需要 &#8211;enable-follow-x-forwarded-for    没有此项配置了 增加了以下选项: &#8211;disable-mempools    相当于2.7配置文件里面的memory_pools off，适合内存使用较大的情况，系统会调用free()来清除没用到的缓存内存 &#8211;with-maxfd=65535    相当于ulimit -n [...]]]></description>
			<content:encoded><![CDATA[<div>
<h2>Squid3.0最重要的新特性:</h2>
</div>
<div>
<ul>
<li>Code converted to C++, with significant internal restructuring and rewrites.</li>
<li>ICAP implementation (RFC 3507 and www.icap-forum.org)</li>
<li>Edge Side Includes (ESI) implementation (www.esi.org)</li>
</ul>
<p>更多的请参考<strong><a title="官方说明" href="http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE14-RELEASENOTES.html" target="_blank">官方说明</a></strong></p>
<p>来说说配置方法的不同之处（只说我自己实际使用的）</p>
<p><strong>./configure的配置项</strong></p>
<p>./configure &#8211;prefix=/usr/local/squid &#8211;with-large-files &#8211;enable-useragent-log &#8211;enable-referer-log &#8211;enable-linux-netfilter &#8211;enable-x-accelerator-vary &#8211;disable-internal-dns &#8211;disable-mempools &#8211;with-maxfd=65535</p>
<p>3.0版本去掉了以下选项:</p>
<p>&#8211;enable-dlmalloc    不再需要<span id="more-300"></span></p>
<p>&#8211;enable-epoll    系统会自己选择最优的I/O Loop Method</p>
<p>&#8211;enable-truncate     不再需要</p>
<p>&#8211;enable-follow-x-forwarded-for    没有此项配置了</p>
<p>增加了以下选项:</p>
<p>&#8211;disable-mempools    相当于2.7配置文件里面的memory_pools off，适合内存使用较大的情况，系统会调用free()来清除没用到的缓存内存</p>
<p>&#8211;with-maxfd=65535    相当于ulimit -n 65535，2.7配置文件里面的max_filedescriptors 65535</p>
<p><strong>配置文件（squid.conf）差别</strong></p>
<p>在Squid3.0版本的配置文件中，如下主要tag发生了变化</p>
<p>acl    去掉了对src为all的定义，已集成；对protocol的定义简写为proto</p>
<p>http_port     去掉了选项http11和act_as_origin；增加了类型http_status</p>
<p>cache_peer    去掉了选项http11</p>
<p>header_access    删除了此tag，以request_header_access和reply_header_access取代</p>
<p>server_http11    删除了此tag</p>
<p>incoming_rate    删除了此tag</p>
<p>memory_pools    删除了此tag，在./configure的时候实现</p>
<p>max_filedescriptors    删除了此tag，在./configure的时候实现</p>
<p>上面只列出了我自己实际配置Squid时，3.0版本和2.7版本的不同之处，关于更多的大家可以参考官方文档。</p>
<p><strong>参考文档</strong></p>
<p><a title="http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE14-RELEASENOTES.html" href="http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE14-RELEASENOTES.html" target="_blank"><strong>http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE14-RELEASENOTES.html</strong></a></p>
<h3>Squid3.0配置参考</h3>
<p>编译参数:<br />
[url=http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE15.tar.gz]http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE15.tar.gz[/url]</p>
<p>[color=Blue]./configure &#8211;prefix=/usr/local/squid3 \<br />
&#8211;enable-debug-cbdata \<br />
&#8211;enable-async-io=100 \<br />
&#8211;with-pthreads \<br />
&#8211;enable-storeio=&#8221;aufs,diskd,ufs&#8221; \<br />
&#8211;enable-removal-policies=&#8221;heap,lru&#8221; \<br />
&#8211;enable-icmp \<br />
&#8211;enable-delay-pools \<br />
&#8211;enable-useragent-log \<br />
&#8211;enable-referer-log \<br />
&#8211;enable-kill-parent-hack \<br />
&#8211;enable-arp-acl \<br />
&#8211;enable-default-err-language=Simplify_Chinese \<br />
&#8211;enable-err-languages=&#8221;Simplify_Chinese English&#8221; \<br />
&#8211;disable-poll \<br />
&#8211;disable-wccp \<br />
&#8211;disable-wccpv2 \<br />
&#8211;disable-ident-lookups \<br />
&#8211;disable-internal-dns \<br />
&#8211;enable-basic-auth-helpers=&#8221;NCSA&#8221; \<br />
&#8211;enable-stacktrace \<br />
&#8211;with-large-files \<br />
&#8211;disable-mempools \<br />
&#8211;with-filedescriptors=65535 \<br />
&#8211;enable-ssl \<br />
&#8211;enable-x-accelerator-var<br />
make<br />
make install[/color]</p>
<p>贴一个我在线上运行的配置供大家参考：）有不足之处欢迎指正。<br />
#accel listen port<br />
[b]http_port 80 accel vhost vport[/b]<br />
#accel domain<br />
[b]cache_peer 211.100.72.109 parent 80 0 no-query originserver no-digest name=www[/b]<br />
[b]cache_peer_domain www .linuxtone.com .linuxtone.com.cn .linuxtone.net .linuxtone.cn .linuxtone.org[/b]</p>
<p>#acl<br />
acl manager proto cache_object<br />
acl localhost src 127.0.0.1/255.255.255.255<br />
acl SSL_ports port 443 563<br />
acl Safe_ports port 80       # http<br />
acl Safe_ports port 8080<br />
acl LanSrc src 211.100.72.0/24<br />
acl LanDst dst 211.100.72.0/24<br />
[b]acl LanDstDM dstdomain .linuxtone.com .linuxtone.com.cn .linuxtone.net .linuxtone.cn .linuxtone.org[/b]</p>
<p>acl CONNECT method CONNECT<br />
http_access allow manager localhost<br />
http_access deny manager<br />
http_access deny !Safe_ports<br />
http_access deny CONNECT !SSL_ports<br />
http_access allow LanSrc<br />
http_access allow LanDst<br />
http_access allow LanDstDM<br />
http_access deny   all</p>
<p>#base<br />
visible_hostname www-cache2.linuxtone.com<br />
cache_mgr [email]cache@linuxtone.org[/email]<br />
cache_effective_user squid<br />
cache_effective_group squid</p>
<p>error_directory /usr/local/squid3/share/errors/Simplify_Chinese<br />
icon_directory /usr/local/squid3/share/icons<br />
mime_table /usr/local/squid3/etc/mime.conf</p>
<p>cache_replacement_policy lru<br />
#cache_dir<br />
cache_dir aufs /data/cache1 32768 64 64<br />
cache_dir aufs /data/cache2 32768 64 64<br />
cache_mem 2048 MB<br />
max_open_disk_fds 0<br />
#maximum_object_size 512 KB<br />
#maximum_object_size_in_memory 256 KB<br />
maximum_object_size 20 MB<br />
maximum_object_size_in_memory 8 MB</p>
<p>#keepalived<br />
client_persistent_connections off<br />
server_persistent_connections on<br />
#persistent_request_timeout 60 seconds</p>
<p>#memory_pools on<br />
#memory_pools_limit 64 MB</p>
<p>forwarded_for on<br />
log_icp_queries off</p>
<p>via off<br />
httpd_suppress_version_string off</p>
<p>ie_refresh off<br />
tcp_recv_bufsize 32 KB</p>
<p>#acl webservices rep_header Server -i ^linuxtoneWS ^Apache ^nginx<br />
#broken_vary_encoding allow webservices</p>
<p>#hidden the squid3 header<br />
#reply_header_access Server deny all<br />
#reply_header_access X-Cache deny all<br />
#reply_header_access Warning deny all<br />
#reply_header_access Expires deny all<br />
#reply_header_access Cache-Control deny all<br />
#reply_header_access age deny all<br />
#reply_header_access All deny all</p>
<p>ipcache_size 1024<br />
ipcache_low 90<br />
ipcache_high 95</p>
<p>memory_replacement_policy lru</p>
<p>hosts_file /etc/hosts<br />
request_header_max_size 128 KB</p>
<p>#deny cache<br />
hierarchy_stoplist cgi-bin ? \.php<br />
acl QUERY urlpath_regex cgi-bin\? \.php<br />
acl DIRECT url_regex -i ^http:\/\/www\.linuxtone\.com\/$<br />
acl DIRECT url_regex -i ^http:\/\/photo\.linuxtone\.com\/.*$<br />
acl DIRECT url_regex -i ^http:\/\/www\.linuxtone\.com\/index\.html$<br />
cache deny QUERY<br />
cache deny DIRECT</p>
<p>#request_body_max_size 0 KB</p>
<p>refresh_pattern ^ftp:           60      20%     10080<br />
refresh_pattern ^gopher:        60      0%      1440<br />
refresh_pattern .               0       20%     1440<br />
refresh_pattern -i \.css$       360    50%     2880    reload-into-ims<br />
refresh_pattern -i \.js$        1440    50%     2880    reload-into-ims<br />
refresh_pattern -i \.html$        720   50%     1440    reload-into-ims<br />
refresh_pattern -i \.jpg$       1440    90%     2880    ignore-reload<br />
refresh_pattern -i \.gif$       1440    90%     2880    ignore-reload<br />
refresh_pattern -i \.swf$       1440    90%     2880    ignore-reload<br />
refresh_pattern -i \.jpg$       1440      50%     2880    ignore-reload<br />
refresh_pattern -i \.png$       1440      50%     2880      ignore-reload  <br />
refresh_pattern -i \.bmp$       1440      50%     2880      ignore-reload</p>
<p>refresh_pattern -i \.doc$ 1440    50%     2880      ignore-reload<br />
refresh_pattern -i \.ppt$ 1440    50%     2880      ignore-reload<br />
refresh_pattern -i \.xls$ 1440    50%     2880      ignore-reload<br />
refresh_pattern -i \.pdf$ 1440    50%     2880      ignore-reload<br />
refresh_pattern -i \.rar$       1440    50%     2880      ignore-reload<br />
refresh_pattern -i \.zip$ 1440    50%     2880      ignore-reload<br />
refresh_pattern -i \.txt$ 1440    50%     2880      ignore-reload</p>
<p>quick_abort_min 20 KB<br />
quick_abort_max 20 KB<br />
quick_abort_pct 95</p>
<p>connect_timeout 1 minute<br />
negative_ttl 0 minutes<br />
read_timeout 30 seconds<br />
pconn_timeout 120 seconds<br />
shutdown_lifetime 5 seconds<br />
strip_query_terms off</p>
<p>#snmp<br />
#snmp_port 3401<br />
#acl snmppublic snmp_orgmunity snsimg<br />
#snmp_access allow snmppublic localhost<br />
#snmp_access deny all</p>
<p>icp_port 0</p>
<p># logfile<br />
emulate_httpd_log on<br />
#logformat combined %{X-Forwarded-For}&gt;h %ui %un [%tl] &#8220;%rm %ru HTTP/%rv&#8221; %Hs %&lt;st &#8220;%{Referer}&gt;h&#8221; &#8220;%{User-Agent}&gt;h&#8221; %Ss:%Sh<br />
#access_log none<br />
#access_log /data/logs/access.log combined<br />
logformat squid  %ts.%03tu %6tr %&gt;a %Ss/%03Hs %&lt;st %rm %ru %un %Sh/%&lt;A %mt<br />
access_log /data/logs/access.log squid<br />
#cache_store_log /var/log/squid3/store.log<br />
cache_store_log /dev/null<br />
cache_log /data/logs/cache.log<br />
logfile_rotate 12</p>
<p># MISCELLANEOUS<br />
store_objects_per_bucket 15<br />
client_db off<span id="_marker"> </span></p>
<h3>Squid3.0配置参考</h3>
<p>编译参数:<br />
[url=http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE15.tar.gz]http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE15.tar.gz[/url]</p>
<p>[color=Blue]./configure &#8211;prefix=/usr/local/squid3 \<br />
&#8211;enable-debug-cbdata \<br />
&#8211;enable-async-io=100 \<br />
&#8211;with-pthreads \<br />
&#8211;enable-storeio=&#8221;aufs,diskd,ufs&#8221; \<br />
&#8211;enable-removal-policies=&#8221;heap,lru&#8221; \<br />
&#8211;enable-icmp \<br />
&#8211;enable-delay-pools \<br />
&#8211;enable-useragent-log \<br />
&#8211;enable-referer-log \<br />
&#8211;enable-kill-parent-hack \<br />
&#8211;enable-arp-acl \<br />
&#8211;enable-default-err-language=Simplify_Chinese \<br />
&#8211;enable-err-languages=&#8221;Simplify_Chinese English&#8221; \<br />
&#8211;disable-poll \<br />
&#8211;disable-wccp \<br />
&#8211;disable-wccpv2 \<br />
&#8211;disable-ident-lookups \<br />
&#8211;disable-internal-dns \<br />
&#8211;enable-basic-auth-helpers=&#8221;NCSA&#8221; \<br />
&#8211;enable-stacktrace \<br />
&#8211;with-large-files \<br />
&#8211;disable-mempools \<br />
&#8211;with-filedescriptors=65535 \<br />
&#8211;enable-ssl \<br />
&#8211;enable-x-accelerator-var<br />
make<br />
make install[/color]</p>
<p>贴一个我在线上运行的配置供大家参考：）有不足之处欢迎指正。<br />
#accel listen port<br />
[b]http_port 80 accel vhost vport[/b]<br />
#accel domain<br />
[b]cache_peer 211.100.72.109 parent 80 0 no-query originserver no-digest name=www[/b]<br />
[b]cache_peer_domain www .linuxtone.com .linuxtone.com.cn .linuxtone.net .linuxtone.cn .linuxtone.org[/b]</p>
<p>#acl<br />
acl manager proto cache_object<br />
acl localhost src 127.0.0.1/255.255.255.255<br />
acl SSL_ports port 443 563<br />
acl Safe_ports port 80       # http<br />
acl Safe_ports port 8080<br />
acl LanSrc src 211.100.72.0/24<br />
acl LanDst dst 211.100.72.0/24<br />
[b]acl LanDstDM dstdomain .linuxtone.com .linuxtone.com.cn .linuxtone.net .linuxtone.cn .linuxtone.org[/b]</p>
<p>acl CONNECT method CONNECT<br />
http_access allow manager localhost<br />
http_access deny manager<br />
http_access deny !Safe_ports<br />
http_access deny CONNECT !SSL_ports<br />
http_access allow LanSrc<br />
http_access allow LanDst<br />
http_access allow LanDstDM<br />
http_access deny   all</p>
<p>#base<br />
visible_hostname www-cache2.linuxtone.com<br />
cache_mgr [email]cache@linuxtone.org[/email]<br />
cache_effective_user squid<br />
cache_effective_group squid</p>
<p>error_directory /usr/local/squid3/share/errors/Simplify_Chinese<br />
icon_directory /usr/local/squid3/share/icons<br />
mime_table /usr/local/squid3/etc/mime.conf</p>
<p>cache_replacement_policy lru<br />
#cache_dir<br />
cache_dir aufs /data/cache1 32768 64 64<br />
cache_dir aufs /data/cache2 32768 64 64<br />
cache_mem 2048 MB<br />
max_open_disk_fds 0<br />
#maximum_object_size 512 KB<br />
#maximum_object_size_in_memory 256 KB<br />
maximum_object_size 20 MB<br />
maximum_object_size_in_memory 8 MB</p>
<p>#keepalived<br />
client_persistent_connections off<br />
server_persistent_connections on<br />
#persistent_request_timeout 60 seconds</p>
<p>#memory_pools on<br />
#memory_pools_limit 64 MB</p>
<p>forwarded_for on<br />
log_icp_queries off</p>
<p>via off<br />
httpd_suppress_version_string off</p>
<p>ie_refresh off<br />
tcp_recv_bufsize 32 KB</p>
<p>#acl webservices rep_header Server -i ^linuxtoneWS ^Apache ^nginx<br />
#broken_vary_encoding allow webservices</p>
<p>#hidden the squid3 header<br />
#reply_header_access Server deny all<br />
#reply_header_access X-Cache deny all<br />
#reply_header_access Warning deny all<br />
#reply_header_access Expires deny all<br />
#reply_header_access Cache-Control deny all<br />
#reply_header_access age deny all<br />
#reply_header_access All deny all</p>
<p>ipcache_size 1024<br />
ipcache_low 90<br />
ipcache_high 95</p>
<p>memory_replacement_policy lru</p>
<p>hosts_file /etc/hosts<br />
request_header_max_size 128 KB</p>
<p>#deny cache<br />
hierarchy_stoplist cgi-bin ? \.php<br />
acl QUERY urlpath_regex cgi-bin\? \.php<br />
acl DIRECT url_regex -i ^http:\/\/www\.linuxtone\.com\/$<br />
acl DIRECT url_regex -i ^http:\/\/photo\.linuxtone\.com\/.*$<br />
acl DIRECT url_regex -i ^http:\/\/www\.linuxtone\.com\/index\.html$<br />
cache deny QUERY<br />
cache deny DIRECT</p>
<p>#request_body_max_size 0 KB</p>
<p>refresh_pattern ^ftp:           60      20%     10080<br />
refresh_pattern ^gopher:        60      0%      1440<br />
refresh_pattern .               0       20%     1440<br />
refresh_pattern -i \.css$       360    50%     2880    reload-into-ims<br />
refresh_pattern -i \.js$        1440    50%     2880    reload-into-ims<br />
refresh_pattern -i \.html$        720   50%     1440    reload-into-ims<br />
refresh_pattern -i \.jpg$       1440    90%     2880    ignore-reload<br />
refresh_pattern -i \.gif$       1440    90%     2880    ignore-reload<br />
refresh_pattern -i \.swf$       1440    90%     2880    ignore-reload<br />
refresh_pattern -i \.jpg$       1440      50%     2880    ignore-reload<br />
refresh_pattern -i \.png$       1440      50%     2880      ignore-reload  <br />
refresh_pattern -i \.bmp$       1440      50%     2880      ignore-reload</p>
<p>refresh_pattern -i \.doc$ 1440    50%     2880      ignore-reload<br />
refresh_pattern -i \.ppt$ 1440    50%     2880      ignore-reload<br />
refresh_pattern -i \.xls$ 1440    50%     2880      ignore-reload<br />
refresh_pattern -i \.pdf$ 1440    50%     2880      ignore-reload<br />
refresh_pattern -i \.rar$       1440    50%     2880      ignore-reload<br />
refresh_pattern -i \.zip$ 1440    50%     2880      ignore-reload<br />
refresh_pattern -i \.txt$ 1440    50%     2880      ignore-reload</p>
<p>quick_abort_min 20 KB<br />
quick_abort_max 20 KB<br />
quick_abort_pct 95</p>
<p>connect_timeout 1 minute<br />
negative_ttl 0 minutes<br />
read_timeout 30 seconds<br />
pconn_timeout 120 seconds<br />
shutdown_lifetime 5 seconds<br />
strip_query_terms off</p>
<p>#snmp<br />
#snmp_port 3401<br />
#acl snmppublic snmp_orgmunity snsimg<br />
#snmp_access allow snmppublic localhost<br />
#snmp_access deny all</p>
<p>icp_port 0</p>
<p># logfile<br />
emulate_httpd_log on<br />
#logformat combined %{X-Forwarded-For}&gt;h %ui %un [%tl] &#8220;%rm %ru HTTP/%rv&#8221; %Hs %&lt;st &#8220;%{Referer}&gt;h&#8221; &#8220;%{User-Agent}&gt;h&#8221; %Ss:%Sh<br />
#access_log none<br />
#access_log /data/logs/access.log combined<br />
logformat squid  %ts.%03tu %6tr %&gt;a %Ss/%03Hs %&lt;st %rm %ru %un %Sh/%&lt;A %mt<br />
access_log /data/logs/access.log squid<br />
#cache_store_log /var/log/squid3/store.log<br />
cache_store_log /dev/null<br />
cache_log /data/logs/cache.log<br />
logfile_rotate 12</p>
<p># MISCELLANEOUS<br />
store_objects_per_bucket 15<br />
client_db off</p></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.fabrichina.net/archives/300/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>如何关闭Squid的Cache功能！</title>
		<link>http://blog.fabrichina.net/archives/298</link>
		<comments>http://blog.fabrichina.net/archives/298#comments</comments>
		<pubDate>Mon, 19 Jul 2010 14:53:48 +0000</pubDate>
		<dc:creator>Albert</dc:creator>
				<category><![CDATA[linux 服务器安装]]></category>
		<category><![CDATA[PHP语言学习]]></category>

		<guid isPermaLink="false">http://blog.fabrichina.net/?p=298</guid>
		<description><![CDATA[1、编译的时候添加null的文件系统： &#8211;enable-storeio=null,(Others) 2、在squid.conf设置： cache_dir null /tmp]]></description>
			<content:encoded><![CDATA[<div>
<table cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td id="postmessage_4164688">1、编译的时候添加null的文件系统：<br />
&#8211;enable-storeio=null,(Others)</p>
<p>2、在squid.conf设置：<br />
cache_dir null /tmp</td>
</tr>
</tbody>
</table>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.fabrichina.net/archives/298/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>squid 多ip配置</title>
		<link>http://blog.fabrichina.net/archives/295</link>
		<comments>http://blog.fabrichina.net/archives/295#comments</comments>
		<pubDate>Mon, 19 Jul 2010 14:48:32 +0000</pubDate>
		<dc:creator>Albert</dc:creator>
				<category><![CDATA[linux 服务器安装]]></category>
		<category><![CDATA[PHP语言学习]]></category>

		<guid isPermaLink="false">http://blog.fabrichina.net/?p=295</guid>
		<description><![CDATA[if (! ($tokens[1] =~ "127.0.0.1")) { 11        push(@acls, "acl ip$count myip $tokens[1]\n"); 12        push(@tcps, "tcp_outgoing_address $tokens[1] ip$count\n"); 13        $count++; 14     } 看懂这个，打在squid.conf里面，就搞定了！！很简单]]></description>
			<content:encoded><![CDATA[<p><code>if</code> <code>(! ($tokens[1] =~ </code><code>"127.0.0.1"</code><code>)) { </code></p>
<div>
<table>
<tbody>
<tr>
<td><code>11</code></td>
<td><code>       </code><code>push(@acls, </code><code>"acl ip$count myip $tokens[1]\n"</code><code>); </code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>12</code></td>
<td><code>       </code><code>push(@tcps, </code><code>"tcp_outgoing_address $tokens[1] ip$count\n"</code><code>); </code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>13</code></td>
<td><code>       </code><code>$count++; </code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>14</code></td>
<td><code>    </code><code>} </code></td>
</tr>
</tbody>
</table>
</div>
<p>看懂这个，打在squid.conf里面，就搞定了！！很简单</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fabrichina.net/archives/295/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>关于多ip路由的例子</title>
		<link>http://blog.fabrichina.net/archives/293</link>
		<comments>http://blog.fabrichina.net/archives/293#comments</comments>
		<pubDate>Mon, 19 Jul 2010 14:27:28 +0000</pubDate>
		<dc:creator>Albert</dc:creator>
				<category><![CDATA[linux 服务器安装]]></category>
		<category><![CDATA[PHP语言学习]]></category>

		<guid isPermaLink="false">http://blog.fabrichina.net/?p=293</guid>
		<description><![CDATA[http://uddtm.com/os/linux/duoxianluyoucelue.php]]></description>
			<content:encoded><![CDATA[<p>http://uddtm.com/os/linux/duoxianluyoucelue.php</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fabrichina.net/archives/293/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>libmemcached 安装报错 解决</title>
		<link>http://blog.fabrichina.net/archives/285</link>
		<comments>http://blog.fabrichina.net/archives/285#comments</comments>
		<pubDate>Tue, 13 Jul 2010 09:13:31 +0000</pubDate>
		<dc:creator>Albert</dc:creator>
				<category><![CDATA[linux 服务器安装]]></category>
		<category><![CDATA[PHP语言学习]]></category>

		<guid isPermaLink="false">http://blog.fabrichina.net/?p=285</guid>
		<description><![CDATA[clients/ms_conn.o: In function `ms_get_udp_request_id&#8217;: /root/soft/phpmodel/libmemcached-0.42/clients/ms_conn.c:194: undefined reference to `__sync_fetch_and_add_4&#8242; clients/ms_conn.o: In function `ms_reconn_socks&#8217;: /root/soft/phpmodel/libmemcached-0.42/clients/ms_conn.c:1051: undefined reference to `__sync_fetch_and_add_4&#8242; clients/ms_conn.o: In function `ms_reconn&#8217;: /root/soft/phpmodel/libmemcached-0.42/clients/ms_conn.c:919: undefined reference to `__sync_fetch_and_add_4&#8242; /root/soft/phpmodel/libmemcached-0.42/clients/ms_conn.c:956: undefined reference to `__sync_fetch_and_add_4&#8242; clients/ms_thread.o: In function `ms_setup_thread&#8217;: /root/soft/phpmodel/libmemcached-0.42/clients/ms_thread.c:225: undefined reference to `__sync_fetch_and_add_4&#8242; clients/ms_thread.o:/root/soft/phpmodel/libmemcached-0.42/clients/ms_thread.c:208: more undefined references to `__sync_fetch_and_add_4&#8242; follow collect2: ld returned 1 exit status make[2]: [...]]]></description>
			<content:encoded><![CDATA[<p>clients/ms_conn.o: In function `ms_get_udp_request_id&#8217;:<br />
/root/soft/phpmodel/libmemcached-0.42/clients/ms_conn.c:194: undefined reference to `__sync_fetch_and_add_4&#8242;<br />
clients/ms_conn.o: In function `ms_reconn_socks&#8217;:<br />
/root/soft/phpmodel/libmemcached-0.42/clients/ms_conn.c:1051: undefined reference to `__sync_fetch_and_add_4&#8242;<br />
clients/ms_conn.o: In function `ms_reconn&#8217;:<br />
/root/soft/phpmodel/libmemcached-0.42/clients/ms_conn.c:919: undefined reference to `__sync_fetch_and_add_4&#8242;<br />
/root/soft/phpmodel/libmemcached-0.42/clients/ms_conn.c:956: undefined reference to `__sync_fetch_and_add_4&#8242;<br />
clients/ms_thread.o: In function `ms_setup_thread&#8217;:<br />
/root/soft/phpmodel/libmemcached-0.42/clients/ms_thread.c:225: undefined reference to `__sync_fetch_and_add_4&#8242;<br />
clients/ms_thread.o:/root/soft/phpmodel/libmemcached-0.42/clients/ms_thread.c:208: more undefined references to `__sync_fetch_and_add_4&#8242; follow<br />
collect2: ld returned 1 exit status<br />
make[2]: *** [clients/memslap] Error 1<br />
make[2]: Leaving directory `/root/soft/phpmodel/libmemcached-0.42&#8242;<br />
make[1]: *** [all-recursive] Error 1<br />
make[1]: Leaving directory `/root/soft/phpmodel/libmemcached-0.42&#8242;<br />
make: *** [all] Error 2</p>
<p>用这个语句</p>
<p>./configure -disable-64bit CFLAGS=&#8221;-O3 -march=i686&#8243;</p>
<p>就可以了</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fabrichina.net/archives/285/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ss5架设</title>
		<link>http://blog.fabrichina.net/archives/281</link>
		<comments>http://blog.fabrichina.net/archives/281#comments</comments>
		<pubDate>Fri, 09 Jul 2010 07:56:09 +0000</pubDate>
		<dc:creator>Albert</dc:creator>
				<category><![CDATA[linux 服务器安装]]></category>
		<category><![CDATA[PHP语言学习]]></category>

		<guid isPermaLink="false">http://blog.fabrichina.net/?p=281</guid>
		<description><![CDATA[yum -y install pam-devel openldap-devel cyrus-sasl-devel 需要BerkeleyDb openladap ss5.tar.gz.. 一个一个编译完毕以后，修改/etc/opt/ss5.conf auth    0.0.0.0/0               -              u permit u 0.0.0.0/0 &#8211; 0.0.0.0/0 &#8211; - ulimit &#8211; - 修改ss5.passwd文件加入 username password 添加ulimit 文件 ulimit里面写上username mv /usr/lib/ss5/mod_socks4.so /usr/lib/ss5/mod_socks4.so.bk 启动/etc/rc.d/init.d/ss5 restart]]></description>
			<content:encoded><![CDATA[<p>yum -y install pam-devel openldap-devel cyrus-sasl-devel</p>
<p>需要BerkeleyDb<br />
openladap<br />
ss5.tar.gz..</p>
<p>一个一个编译完毕以后，修改/etc/opt/ss5.conf<br />
auth    0.0.0.0/0               -              u<br />
permit u 0.0.0.0/0 &#8211; 0.0.0.0/0 &#8211; - ulimit &#8211; -<br />
修改ss5.passwd文件加入<br />
username password<br />
添加ulimit 文件<br />
ulimit里面写上username</p>
<p>mv /usr/lib/ss5/mod_socks4.so /usr/lib/ss5/mod_socks4.so.bk</p>
<p>启动/etc/rc.d/init.d/ss5 restart</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fabrichina.net/archives/281/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>多IP应用</title>
		<link>http://blog.fabrichina.net/archives/277</link>
		<comments>http://blog.fabrichina.net/archives/277#comments</comments>
		<pubDate>Fri, 09 Jul 2010 03:49:33 +0000</pubDate>
		<dc:creator>Albert</dc:creator>
				<category><![CDATA[linux 服务器安装]]></category>
		<category><![CDATA[PHP语言学习]]></category>

		<guid isPermaLink="false">http://blog.fabrichina.net/?p=277</guid>
		<description><![CDATA[可以加一条指定源地址的路由来试试: 假定 指定使用1.1.1.2地址, 其所在的子接口为eth1:0 则 route add &#60;目标网段/主机&#62; gw &#60;网关&#62; dev eth1:0 如果是多网卡绑同网段ip也一样, 将dev后面的eth1:0换成 eth1 (假定1.1.1.2绑在eth1网卡上).]]></description>
			<content:encoded><![CDATA[<table cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td id="postmessage_7097963">可以加一条指定源地址的路由来试试:<br />
假定 指定使用1.1.1.2地址, 其所在的子接口为eth1:0 则<br />
route add &lt;目标网段/主机&gt; gw &lt;网关&gt; dev eth1:0</p>
<p>如果是多网卡绑同网段ip也一样, 将dev后面的eth1:0换成 eth1 (假定1.1.1.2绑在eth1网卡上).</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://blog.fabrichina.net/archives/277/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>linux服务器查看cpu 内存相关信息</title>
		<link>http://blog.fabrichina.net/archives/255</link>
		<comments>http://blog.fabrichina.net/archives/255#comments</comments>
		<pubDate>Tue, 01 Jun 2010 01:34:02 +0000</pubDate>
		<dc:creator>Albert</dc:creator>
				<category><![CDATA[linux 服务器安装]]></category>
		<category><![CDATA[PHP语言学习]]></category>

		<guid isPermaLink="false">http://blog.fabrichina.net/?p=255</guid>
		<description><![CDATA[转帖： 测试机器的硬件信息： 查看CPU信息（型号） # cat /proc/cpuinfo &#124; grep name &#124; cut -f2 -d: &#124; uniq -c       8  Intel(R) Xeon(R) CPU            E5410   @ 2.33GHz (看到有8个逻辑CPU, 也知道了CPU型号) # cat /proc/cpuinfo &#124; grep physical &#124; uniq -c       4 physical id      : 0       4 physical id      : 1 (说明实际上是两颗4核的CPU) # getconf LONG_BIT    32 (说明当前CPU运行在32bit模式下, 但不代表CPU不支持64bit) [...]]]></description>
			<content:encoded><![CDATA[<p>转帖：</p>
<p>测试机器的硬件信息：</p>
<p>查看CPU信息（型号）<br />
# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c<br />
      8  Intel(R) Xeon(R) CPU            E5410   @ 2.33GHz<br />
(看到有8个逻辑CPU, 也知道了CPU型号)<br />
<span id="more-255"></span><br />
# cat /proc/cpuinfo | grep physical | uniq -c<br />
      4 physical id      : 0<br />
      4 physical id      : 1<br />
(说明实际上是两颗4核的CPU)</p>
<p># getconf LONG_BIT<br />
   32<br />
(说明当前CPU运行在32bit模式下, 但不代表CPU不支持64bit)</p>
<p># cat /proc/cpuinfo | grep flags | grep &#8216; lm &#8216; | wc -l<br />
   8<br />
(结果大于0, 说明支持64bit计算. lm指long mode, 支持lm则是64bit)</p>
<p>再完整看cpu详细信息, 不过大部分我们都不关心而已.<br />
# dmidecode | grep &#8216;Processor Information&#8217;</p>
<p>查看内 存信息<br />
# cat /proc/meminfo</p>
<p># uname -a<br />
Linux euis1 2.6.9-55.ELsmp #1 SMP Fri Apr 20 17:03:35 EDT 2007 i686 i686 i386 GNU/Linux<br />
(查看当前操作系统内核信息)</p>
<p># cat /etc/issue | grep Linux<br />
Red Hat Enterprise Linux AS release 4 (Nahant Update 5)<br />
(查看当前操作系统发行版信息)</p>
<p>查看机器型号<br />
# dmidecode | grep &#8220;Product Name&#8221; </p>
<p>查看网卡信息<br />
# dmesg | grep -i eth</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fabrichina.net/archives/255/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>nginx ip 传递给apache remote_add..</title>
		<link>http://blog.fabrichina.net/archives/229</link>
		<comments>http://blog.fabrichina.net/archives/229#comments</comments>
		<pubDate>Wed, 12 May 2010 05:34:04 +0000</pubDate>
		<dc:creator>Albert</dc:creator>
				<category><![CDATA[linux 服务器安装]]></category>
		<category><![CDATA[PHP语言学习]]></category>

		<guid isPermaLink="false">http://blog.fabrichina.net/?p=229</guid>
		<description><![CDATA[http://stderr.net/apache/rpaf/download/ 编译吗。。用这个 /usr/local/httpd/bin/apxs -i -a -c mod_rpaf-2.0.c 注意他有2个.c的2.0这个是for apache2.0的（文档太烂，我自己猜的，反正没2.0的编译不过去~~） chmod 755 /usr/local/httpd/modules/mod_rpaf-2.0.so [activating module `rpaf' in /usr/local/httpd/conf/httpd.conf] 貌似直接就搞上去了。。 RPAFenable On # Enable reverse proxy add forward RPAFproxy_ips 127.0.0.1 10.10.70.* #实际测试中ip他不支持*这种通配符..所以还是写清楚你nginx的原始IP吧！ # which ips are forwarding requests to us RPAFsethostname On # let rpaf update vhost settings # allows to have the same hostnames as in [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://stderr.net/apache/rpaf/download/">http://stderr.net/apache/rpaf/download/</a></p>
<p>编译吗。。用这个</p>
<p><span id="more-229"></span></p>
<p>/usr/local/httpd/bin/apxs -i -a -c mod_rpaf-2.0.c</p>
<p>注意他有2个.c的2.0这个是for apache2.0的（文档太烂，我自己猜的，反正没2.0的编译不过去~~）</p>
<p>chmod 755 /usr/local/httpd/modules/mod_rpaf-2.0.so<br />
[activating module `rpaf' in /usr/local/httpd/conf/httpd.conf]</p>
<p>貌似直接就搞上去了。。</p>
<p>RPAFenable On<br />
# Enable reverse proxy add forward<br />
RPAFproxy_ips 127.0.0.1 10.10.70.*</p>
<p>#实际测试中ip他不支持*这种通配符..所以还是写清楚你nginx的原始IP吧！<br />
# which ips are forwarding requests to us<br />
RPAFsethostname On<br />
# let rpaf update vhost settings<br />
# allows to have the same hostnames as in the &#8220;real&#8221;<br />
# configuration for the forwarding Apache<br />
RPAFheader X-REAL-IP<br />
# Allows you to change which header mod_rpaf looks<br />
# for when trying to find the ip the that is forwarding<br />
# our requests</p>
<p>X-REAL-IP哪里来的呢？当然是nginx里面配置的~~</p>
<p>       set  $my_x_real_ip &#8220;&#8221;;<br />
        if ($my_x_real_ip ~ &#8220;^$&#8221;) {<br />
                set $my_x_real_ip $http_x_real_ip;<br />
        }<br />
        if ($http_x_real_ip ~ &#8220;^$&#8221;)  {<br />
                set $my_x_real_ip $remote_addr;<br />
        }        <br />
        proxy_set_header    X-Real-IP $my_x_real_ip;</p>
<p>吧这个存成realIP.conf然后再nginx的conf里面每个server段include一下，就会多一个x-real-ip的header了</p>
<p>print_r($_SERVER);</p>
<p>[REMOTE_ADDR] =&gt; 192.168.105.47</p>
<p>你看，php已经能正常获取IP了！</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fabrichina.net/archives/229/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

