<?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>OurApache &#187; Apache初级应用</title>
	<atom:link href="http://ourapache.com/archives/category/primary/feed" rel="self" type="application/rss+xml" />
	<link>http://ourapache.com</link>
	<description>我们致力于一个Apache知识的分享网站</description>
	<lastBuildDate>Tue, 13 Apr 2010 05:18:24 +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>htaccess二级目录重写找不到路径</title>
		<link>http://ourapache.com/archives/316</link>
		<comments>http://ourapache.com/archives/316#comments</comments>
		<pubDate>Tue, 09 Mar 2010 01:36:35 +0000</pubDate>
		<dc:creator>OurApache</dc:creator>
				<category><![CDATA[Apache初级应用]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[路径]]></category>

		<guid isPermaLink="false">http://www.ourapache.com/?p=316</guid>
		<description><![CDATA[首先申明一下：使用.htaccess文件，会降低httpd服务器的一点性能.h]]></description>
			<content:encoded><![CDATA[<p>首先申明一下：使用.htaccess文件，会降低httpd服务器的一点性能.h<br />
我们一般会把客户的网站放在自己的网站的目录下面，<br />
比如FTP：/home/ftp/www，<br />
有一个网站http://www.example.com，<br />
那么新建一个网站的目录为http://www.example.com/newsite/，<br />
我们这个项目是使用qeephp开发的，使用<a href="http://www.qeephp.com/"><span style="color: #0059b3;">qeephp</span></a>的路由重写功能，在把网站上传到服务器上，<br />
使用了虚拟目录Alias，因为不想看到类似http://www.example.com/newsite/public/这样的路径，<br />
于是外部访问地址是http://www.example.com/newsite,<br />
在我启用了qeephp的rewrite时，一直说找不到路径，/home/ftp/www/newsite/,很奇怪。<br />
仔细阅读htaccess的文档，发现有一个BaseDir参数<br />
在htaccess 中添加</p>
<div class="wp_syntax" style="padding-bottom: 0px;">
<div class="code">
<pre class="ini" style="font-family: monospace;">RewriteEngine on
RewriteBase /twosisters
 
RewriteCond %<span>{</span>REQUEST_FILENAME<span>}</span> -s <span style="font-weight: bold; color: #000066;"><span style="color: #000066;"><span>[</span>OR<span>]</span></span></span>
RewriteCond %<span>{</span>REQUEST_FILENAME<span>}</span> -l <span style="font-weight: bold; color: #000066;"><span style="color: #000066;"><span>[</span>OR<span>]</span></span></span>
RewriteCond %<span>{</span>REQUEST_FILENAME<span>}</span> -d
RewriteRule ^.*$ - <span style="font-weight: bold; color: #000066;"><span style="color: #000066;"><span>[</span>NC,L<span>]</span></span></span>
RewriteRule ^.*$ index.php <span style="font-weight: bold; color: #000066;"><span style="color: #000066;"><span>[</span>NC,L<span>]</span></span></span></pre>
</div>
</div>
<p>问题就解决.<br />
估计把index.php改成绝对路径也没有问题。</p>
<h3  class="related_post_title">相关文章</h3><ul class="related_post"><li>2009年12月12号 -- <a href="http://ourapache.com/archives/310" title=".htaccess的301跳转">.htaccess的301跳转</a></li><li>2009年06月15号 -- <a href="http://ourapache.com/archives/259" title="16个简单实用的.htaccess小贴示">16个简单实用的.htaccess小贴示</a></li><li>2009年01月6号 -- <a href="http://ourapache.com/archives/32" title="htaccess学习笔记">htaccess学习笔记</a></li><li>2009年01月6号 -- <a href="http://ourapache.com/archives/25" title="Apache服务器使用.htaccess实现图片防盗链方法教程">Apache服务器使用.htaccess实现图片防盗链方法教程</a></li><li>2008年12月27号 -- <a href="http://ourapache.com/archives/7" title="apache中.htaccess的功能及写法">apache中.htaccess的功能及写法</a></li></ul>
	标签：<a href="http://ourapache.com/archives/category/primary" title="Apache初级应用" rel="tag">Apache初级应用</a>, <a href="http://ourapache.com/archives/tag/htaccess" title="htaccess" rel="tag">htaccess</a>, <a href="http://ourapache.com/archives/tag/%e8%b7%af%e5%be%84" title="路径" rel="tag">路径</a><br />
]]></content:encoded>
			<wfw:commentRss>http://ourapache.com/archives/316/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache和IIS共享80端口的四个方法</title>
		<link>http://ourapache.com/archives/273</link>
		<comments>http://ourapache.com/archives/273#comments</comments>
		<pubDate>Thu, 13 Aug 2009 09:33:08 +0000</pubDate>
		<dc:creator>OurApache</dc:creator>
				<category><![CDATA[Apache初级应用]]></category>
		<category><![CDATA[iis]]></category>

		<guid isPermaLink="false">http://www.ourapache.com/?p=273</guid>
		<description><![CDATA[Apache和IIS共享80端口的四个方法]]></description>
			<content:encoded><![CDATA[<div class="mypost">
<p><strong>方法一：</strong></p>
<p><a href="http://ourapache.com/archives/tag/iis" class="st_tag internal_tag" rel="tag" title="标签 iis 下的日志">IIS</a>5，多IP下共存，IIS为192.168.0.1，apache为192.168.0.2</p>
<blockquote><p>c:\Inetpub\Adminscripts<br />
cscript adsutil.vbs set w3svc/disablesocketpooling true</p></blockquote>
<p>该命令反馈如下disablesocketpooling : (BOOLEAN) True</p>
<p>重启IIS</p>
<blockquote><p>Inetpub\AdminScripts&gt;cscript adsutil.vbs set w3svc/disablesocketpooling true</p></blockquote>
<p>由于 DisableSocketPooling 在 IIS 6.0 元数据库架构 (MBSchema.xml) 中被定义为有效属性，所以，您仍然可以使用 Adsutil.vbs 设置该属性，但这种设置不起作用。IIS 6.0 中的功能是新增的核心级别驱动程序 HTTP.sys 的一部分。要配置 HTTP.sys，您必须使用 Httpcfg.exe</p>
<p><strong>方法二：</strong></p>
<p>IIS6，多IP下共存，IIS为192.168.0.1，apache为192.168.0.2</p>
<p>到2003的CD下的 support/tools/Support.cab。解压出httpcfg.exe文件，COPY到windows/system32/目录下，用法自己看帮助</p>
<p>命令行绑定到某IP：</p>
<blockquote><p>httpcfg set iplisten -i 192.168.0.1</p></blockquote>
<p>即命令使用IIS的只监听指定的IP及端口</p>
<blockquote><p>查看绑定： httpcfg query iplisten<br />
删除绑定： httpcfg delete iplisten -i 192.168.0.1</p></blockquote>
<p>命令行</p>
<blockquote><p>net stop <a href="http://ourapache.com/archives/tag/apache" class="st_tag internal_tag" rel="tag" title="标签 apache 下的日志">Apache</a>2<br />
net stop iisadmin /y<br />
net START Apache2<br />
net START w3svc</p></blockquote>
<p>保证iis下的ip设置为全局默认，Apache中httpconf设置listen 192.168.0.2:80，就应该可以两个服务同时运行，相互不冲突了。</p>
<p>IIS的访问地址为http://192.168.0.1，Apache访问地址为<a href="http://192.168.0.2">http://192.168.0.2</a></p>
<p><span style="COLOR: red">提醒：IIS要指定为IP地址192.168.0.1 <a href="http://ourapache.com/archives/tag/%e7%ab%af%e5%8f%a3" class="st_tag internal_tag" rel="tag" title="标签 端口 下的日志">端口</a>80；Apache 设置listen 192.168.0.2:80。关键是IIS用httpcfg命令绑定后，要重启系统，仅仅重启服务是不行的。</span></p>
<p><strong>方法三：</strong></p>
<p>将apache设为使用80端口，IIS使用其它端口，比如81，然后将apache作为IIS的代理。</p>
<p>在httpd.conf里面，取消下面四行的注释：</p>
<blockquote><p>LoadModule proxy_module modules/mod_proxy.so<br />
LoadModule proxy_connect_module modules/mod_proxy_connect.so<br />
LoadModule proxy_http_module modules/mod_proxy_http.so<br />
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so</p></blockquote>
<p>然后建立一个虚拟主机，将该域名的所有访问转向81端口。</p>
<blockquote><p>ServerName iloves.vicp.net<br />
ProxyPass / http://localhost:81/<br />
ProxyPassReverse / <a href="http://localhost:81/">http://localhost:81/</a></p></blockquote>
<p>这样，对外就可以只需要一个端口，即可同时使用apache和IIS的功能了</p>
<p><strong>方法四：</strong></p>
<p>网上常用的单IP共用80端口方法，不过不推荐，只是使用Apache的代理，速度有影响将apache设为使用80端口，IIS使用其它端口，比如81，然后将apache作为IIS的代理。</p>
<p>在httpd.conf里面，取消下面四行的注释：</p>
<blockquote><p>LoadModule proxy_module modules/mod_proxy.so<br />
LoadModule proxy_connect_module modules/mod_proxy_connect.so<br />
LoadModule proxy_http_module modules/mod_proxy_http.so<br />
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so</p></blockquote>
<p>然后建立一个虚拟主机，将该域名的所有访问转向81端口。</p>
<blockquote><p>ServerName iloves.vicp.net<br />
ProxyPass / http://localhost:81/<br />
ProxyPassReverse / <a href="http://localhost:81/">http://localhost:81/</a></p></blockquote>
<p>这样，对外就可以只需要一个端口，即可同时使用apache和IIS的功能了</p>
<p>类推，使用第二种方法，你可以在IIS上配置PHP4，Apache2中配置PHP5，只需要IIS中安装PHP4，把php.ini复制到\windows目录即可，这个就不用说了吧，Apache2中，只要把PHP5的php.ini放在PHP5安装目录里面就行了</p>
<p>配置Apache以支持PHP5：</p>
<blockquote><p>LoadModule php5_module “D:/PHPServer/PHP5/php5apache2.dll”<br />
AddType application/x-httpd-php .php<br />
DirectoryIndex index.html index.php<br />
PHPIniDir “D:/PHPServer/PHP5″</p></blockquote>
<p>其中最重要的一条就是 PHPIniDir，用来指明php.ini文件所在位置，即PHP5的安装目录，注意所有目录的应该改为D:/PHPServer/PHP5这种格式， 而非D:\PHPServer\PHP5，IIS的访问地址为http://192.168.0.1，Apache访问地址为http: //192.168.0.2</p></div>
<h3  class="related_post_title">相关文章</h3><ul class="related_post"><li>2009年02月10号 -- <a href="http://ourapache.com/archives/104" title="Apache和IIS共享80端口的四个方法">Apache和IIS共享80端口的四个方法</a></li></ul>
	标签：<a href="http://ourapache.com/archives/category/primary" title="Apache初级应用" rel="tag">Apache初级应用</a>, <a href="http://ourapache.com/archives/tag/iis" title="iis" rel="tag">iis</a><br />
]]></content:encoded>
			<wfw:commentRss>http://ourapache.com/archives/273/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache配置之URL重写</title>
		<link>http://ourapache.com/archives/270</link>
		<comments>http://ourapache.com/archives/270#comments</comments>
		<pubDate>Thu, 13 Aug 2009 09:27:23 +0000</pubDate>
		<dc:creator>OurApache</dc:creator>
				<category><![CDATA[Apache初级应用]]></category>
		<category><![CDATA[mod_rewrite]]></category>

		<guid isPermaLink="false">http://www.ourapache.com/?p=270</guid>
		<description><![CDATA[wordpress中的永久链接需要Apache支持url重写，于是配置了一下。]]></description>
			<content:encoded><![CDATA[<p>wordpress中的永久链接需要Apache支持url重写，于是配置了一下。</p>
<p>1、修改apache的httpd.conf文件，将下面语句前的#去掉</p>
<blockquote><p>#LoadModule <a href="http://ourapache.com/archives/tag/rewrite" class="st_tag internal_tag" rel="tag" title="标签 rewrite 下的日志">rewrite</a>_module modules/mod_<a href="http://ourapache.com/archives/tag/rewrite" class="st_tag internal_tag" rel="tag" title="标签 rewrite 下的日志">rewrite</a>.so</p></blockquote>
<p>2、修改apache的httpd.conf文件，将对应的节中的AllowOverride None 改为AllowOverride All，如</p>
<blockquote><p>&lt;Directory “D:/Local/<a href="http://ourapache.com/archives/tag/apache" class="st_tag internal_tag" rel="tag" title="标签 apache 下的日志">Apache</a>/htdocs/”&gt;<br />
Options Indexes FollowSymLinks<br />
AllowOverride All<br />
Order allow,deny<br />
Allow from all<br />
&lt;/Directory&gt;</p></blockquote>
<p>3、在需url重写的目录下建立.htaccess文件，wordpress在开启永久链接后会只能生成，内容如下：</p>
<blockquote><p>&lt;IfModule <a href="http://ourapache.com/archives/tag/mod_rewrite" class="st_tag internal_tag" rel="tag" title="标签 mod_rewrite 下的日志">mod_rewrite</a>.c&gt;<br />
RewriteEngine On<br />
RewriteBase /<br />
RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
RewriteRule . /index.php [L]<br />
&lt;/IfModule&gt;</p></blockquote>
<p>效果就是如此链接<a href="http://witmax.cn/apache-url-rewrite.html">http://witmax.cn/apache-url-rewrite.html</a><span class="linkification-ext">，其实并不存在这个目录，而是通过url重写由index.php来解析支持。</span></p>
<h3  class="related_post_title">相关文章</h3><ul class="related_post"><li>2009年06月14号 -- <a href="http://ourapache.com/archives/253" title="Apache自动添加地址末尾的斜线">Apache自动添加地址末尾的斜线</a></li><li>2009年02月12号 -- <a href="http://ourapache.com/archives/134" title="泛域名与mod_rewrite">泛域名与mod_rewrite</a></li></ul>
	标签：<a href="http://ourapache.com/archives/category/primary" title="Apache初级应用" rel="tag">Apache初级应用</a>, <a href="http://ourapache.com/archives/tag/mod_rewrite" title="mod_rewrite" rel="tag">mod_rewrite</a><br />
]]></content:encoded>
			<wfw:commentRss>http://ourapache.com/archives/270/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>玩转apache之日志</title>
		<link>http://ourapache.com/archives/243</link>
		<comments>http://ourapache.com/archives/243#comments</comments>
		<pubDate>Mon, 01 Jun 2009 03:55:00 +0000</pubDate>
		<dc:creator>OurApache</dc:creator>
				<category><![CDATA[Apache初级应用]]></category>
		<category><![CDATA[log]]></category>
		<category><![CDATA[日志]]></category>

		<guid isPermaLink="false">http://www.ourapache.com/?p=243</guid>
		<description><![CDATA[要有效地管理Web服务器，就有必须了解服务器的状态、性能以及出现的问题。Apache提供了非常全面而灵活的日志记录功能。本文将阐述如何配置文件以及如何理解日志内容。]]></description>
			<content:encoded><![CDATA[<h2>引言</h2>
<p>要有效地管理Web服务器，就有必须了解服务器的状态、性能以及出现的问题。Apache提供了非常全面而灵活的日志记录功能。本文将阐述如何配置文件以及如何理解日志内容。</p>
<p> </p>
<h3>1.使用combined获取更详细的日志</h3>
<p>编辑httpd.conf文件（下面几乎都是更改这个文件），搜索CustomLog<br />
CustomLog logs/access_<a href="http://ourapache.com/archives/tag/log" class="st_tag internal_tag" rel="tag" title="标签 log 下的日志">log</a> combined<br />
用这个格式不会有什么损失，而且还能获得一些额外的信息（referer和user-agent）。</p>
<h3>2.让错误信息更全面</h3>
<p>通过定义loglevel来实现<br />
搜索LogLevel</p>
<p>日志级别如下。（debug产生的信息最多。emerg产生的信息最少）</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top">
<p align="left"><strong>Level</strong></p>
</td>
<td valign="top">
<p align="left"><strong>描述</strong></p>
</td>
<td valign="top">
<p align="left"><strong>例子</strong></p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">emerg</p>
</td>
<td valign="top">
<p align="left">紧急(系统无法使用)</p>
</td>
<td valign="top">
<p align="left">“Child cannot open lock file. Exiting”</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">alert</p>
</td>
<td valign="top">
<p align="left">必须立即采取措施</p>
</td>
<td valign="top">
<p align="left">“getpwuid: couldn’t determine user name from uid”</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">crit</p>
</td>
<td valign="top">
<p align="left">致命情况</p>
</td>
<td valign="top">
<p align="left">“socket: Failed to get a socket, exiting child”</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">error</p>
</td>
<td valign="top">
<p align="left">错误情况</p>
</td>
<td valign="top">
<p align="left">“Premature end of script headers”</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">warn</p>
</td>
<td valign="top">
<p align="left">警告情况</p>
</td>
<td valign="top">
<p align="left">“child process 1234 did not exit, sending another SIGHUP”</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">notice</p>
</td>
<td valign="top">
<p align="left">一般重要情况</p>
</td>
<td valign="top">
<p align="left">“httpd: caught SIGBUS, attempting to dump core in …”</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">info</p>
</td>
<td valign="top">
<p align="left">普通信息</p>
</td>
<td valign="top">
<p align="left">“Server seems busy, (you may need to increase StartServers, or Min/MaxSpareServers)…”</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">debug</p>
</td>
<td valign="top">
<p align="left">调试信息</p>
</td>
<td valign="top">
<p align="left">“Opening config file …”</p>
</td>
</tr>
</tbody>
</table>
<p> </p>
<h3>3.记录以POST方式传送的数据</h3>
<p>使用mod_secutiry,增加如下配置<br />
SecAuditLogType Concurrent<br />
SecAuditLogStorageDir /var/www/audit_log/data/<br />
SecAuditLog /var/www/audit_log/index<br />
SecAuditLogParts ABCFHZ<br />
注：<br />
post方式与get方式<br />
1、采用post方式传输数据时,不需要在URL中显示出来,而get方式要在URL当中进行显示(不安全性).<br />
2、post方式的传输数据量较大,理论上来说是没有限制的,而get方式由于受到UEL长度的限制,只能传递GET方式提交的数据最多只能有1024字节.<br />
3、post顾名思义,就是为了将数据传送到服务器端,Get就是为了从服务器端取得数据.而Get之所以也能传送数据,只是用来设计告诉服务器,你到底需要什么样的数据.post的信息作为http请求的内容，而Get是在Http头部传输的。<br />
我们的form表单的method方法，post,get.它在页面传值的时候的区别也就是上面提到的三点.</p>
<h3>4.记录cookie</h3>
<p>记录从客户端<strong>收到的cookie</strong></p>
<p>CustomLog logs/cookies_in.log “%{UNIQUE_ID}e %{Cookie}i”<br />
CustomLog logs/cookies2_in.log “%{UNIQUE_ID}e %{Cookie2}i”</p>
<p>记录由服务器<strong>发送的cookie</strong></p>
<p>CustomLog logs/cookies_out.log “%{UNIQUE_ID}e %{Set-Cookie}o”<br />
CustomLog logs/cookies2_out.log “%{UNIQUE_ID}e %{Set-Cookie2}o”<br />
注：本方法记录所有的cookie ，如何区分是个问题。我只在实验的时候用，真实生产环境用的不多。<br />
cookie与Set-cookie标头字段是最常用到的。cookie2与set-cookie对应的字段比较新。</p>
<h3>5.忽略来自本站的请求</h3>
<p>追踪盗链的时候比较有用。<br />
定义后缀<br />
SetEnvIfNoCase Referer “^http://www.example.com/” 你的网站 local_referrer=1</p>
<p>CustomLog logs/access_log combined env=!local_referrer</p>
<p>注：SetEnvIfNoCase与SetEnvIf相同，但是前者无视大小写。</p>
<h3>6.按时间生产日志</h3>
<p>有时需要间隔N小时生产一次日志。</p>
<p>CustomLog “| /path/to/rotatelogs /path/to/logs/access_log.%Y-%m-%d 86400″ combined</p>
<p>注：使用了CustomLog和rotatelogs （red hat默认就有）。<br />
使用秒来控制间隔时间。</p>
<h3>7.在每月的第一天更新日志文件</h3>
<p>在每月的第一天结束上个月的日志文件，同时开始新的记录。</p>
<p><code>CustomLog "|/usr/bin/cronolog /www/logs/access%Y%m.log" combined</code></p>
<p>注：需要使用cronolog，十分好用的工具，下载地址请google之。</p>
<h3>8.为虚拟主机建立各自的日志</h3>
<p>首先，需要将虚拟主机的信息放入日志中。</p>
<p>LogFormat “%v %h %l %u %t \”%r\” %&gt;s %b” vhost<br />
CustomLog logs/multiple_vhost_log vhost</p>
<p>这将用日志的普通格式来创建一个日志文件。但会在每条记录前加上正式的虚拟主机名(就是在ServerName指令中定义的那个)。<br />
现在将日志文件分开(每个虚拟主机一个日志文件)</p>
<p>split-logfile &lt; /logs/multiple_vhost_log</p>
<p>注：split-logfile不是自动安装的，而是在配置过程以后，装在”support”目录下的<br />
附表</p>
<h3>9.记录响应请求的ip地址</h3>
<p>当服务器有多个ip时想知道是哪个ip响应了请求。</p>
<p>CustomLog logs/served-by.log “%A”</p>
<h3>10.记录访客来源</h3>
<p>知己知彼，了解访客是从哪个网站过来的。</p>
<p>%{Referer}i</p>
<p>注：默认已经包含在logformat</p>
<h3>11.记录访客使用的浏览器</h3>
<p>%{User-Agent}i</p>
<p>注：默认已经包含在logformat</p>
<h3>12.使用syslog记录apache日志</h3>
<p>第一步：配置syslog<br />
/etc/syslog.conf是syslog的配置文件。<br />
里面的每一行都用一个或者多个空格或者TAB隔开，分成两个段<br />
如：<br />
mail.info /var/log/maillog<br />
意思是把日志对象mail的info级别及以上级别的日志记录到/var/log/maillog中去<br />
在这里，前面一段是 : 日志对象.日志级别。后面一段是:日志的记录位置，这个位置可以是<strong>文件</strong>(如/var/log/maillog)，可以是某个<strong>TTY</strong>（如/dev/tty1）可以是某个登录的<strong>用户的控制台</strong> （如用户名jean）也可以是当前所有的下在登录的用户所在的控制台（用＊号表示所有用户）还可以是一台<strong>远程的主机</strong>（@remote_host_ip）<br />
现在加入这一行</p>
<p>local0.info /var/log/<a href="http://ourapache.com/archives/tag/apache" class="st_tag internal_tag" rel="tag" title="标签 apache 下的日志">apache</a>.log</p>
<p>然后重新启动syslog。service syslog restart<br />
第二步<br />
在apache配置中加入</p>
<p>CustomLog “|logger -t apache -p local0.info” combined</p>
<h3>补充</h3>
<p>HTTP状态码</p>
<table border="1" cellspacing="0" cellpadding="0" width="100%">
<thead>
<tr>
<td>
<p align="center"><strong>编码</strong></p>
</td>
<td>
<p align="center"><strong>描述</strong></p>
</td>
</tr>
</thead>
<tbody>
<tr>
<td colspan="2">
<p align="left">Informational 1xx</p>
</td>
</tr>
<tr>
<td>
<p align="left">100</p>
</td>
<td>
<p align="left">Continue</p>
</td>
</tr>
<tr>
<td>
<p align="left">101</p>
</td>
<td>
<p align="left">Switching protocols</p>
</td>
</tr>
<tr>
<td colspan="2">
<p align="left">Successful 2xx</p>
</td>
</tr>
<tr>
<td>
<p align="left">200</p>
</td>
<td>
<p align="left">OK</p>
</td>
</tr>
<tr>
<td>
<p align="left">201</p>
</td>
<td>
<p align="left">Created</p>
</td>
</tr>
<tr>
<td>
<p align="left">202</p>
</td>
<td>
<p align="left">Accepted</p>
</td>
</tr>
<tr>
<td>
<p align="left">203</p>
</td>
<td>
<p align="left">Nonauthoritative information</p>
</td>
</tr>
<tr>
<td>
<p align="left">204</p>
</td>
<td>
<p align="left">No content</p>
</td>
</tr>
<tr>
<td>
<p align="left">205</p>
</td>
<td>
<p align="left">Reset content</p>
</td>
</tr>
<tr>
<td>
<p align="left">206</p>
</td>
<td>
<p align="left">Partial content</p>
</td>
</tr>
<tr>
<td colspan="2">
<p align="left">Redirection 3xx</p>
</td>
</tr>
<tr>
<td>
<p align="left">300</p>
</td>
<td>
<p align="left">Multiple choices</p>
</td>
</tr>
<tr>
<td>
<p align="left"><a href="http://ourapache.com/archives/tag/301" class="st_tag internal_tag" rel="tag" title="标签 301 下的日志">301</a></p>
</td>
<td>
<p align="left">Moved permanently</p>
</td>
</tr>
<tr>
<td>
<p align="left">302</p>
</td>
<td>
<p align="left">Found</p>
</td>
</tr>
<tr>
<td>
<p align="left">303</p>
</td>
<td>
<p align="left">See other</p>
</td>
</tr>
<tr>
<td>
<p align="left">304</p>
</td>
<td>
<p align="left">Not modified</p>
</td>
</tr>
<tr>
<td>
<p align="left">305</p>
</td>
<td>
<p align="left">Use proxy</p>
</td>
</tr>
<tr>
<td>
<p align="left">306</p>
</td>
<td>
<p align="left">(Unused)</p>
</td>
</tr>
<tr>
<td>
<p align="left">307</p>
</td>
<td>
<p align="left">Temporary redirect</p>
</td>
</tr>
<tr>
<td colspan="2">
<p align="left">Client error 4xx</p>
</td>
</tr>
<tr>
<td>
<p align="left">400</p>
</td>
<td>
<p align="left">Bad request</p>
</td>
</tr>
<tr>
<td>
<p align="left">401</p>
</td>
<td>
<p align="left">Unauthorized</p>
</td>
</tr>
<tr>
<td>
<p align="left">402</p>
</td>
<td>
<p align="left">Payment required</p>
</td>
</tr>
<tr>
<td>
<p align="left">403</p>
</td>
<td>
<p align="left">Forbidden</p>
</td>
</tr>
<tr>
<td>
<p align="left">404</p>
</td>
<td>
<p align="left">Not found</p>
</td>
</tr>
<tr>
<td>
<p align="left">405</p>
</td>
<td>
<p align="left">Method not allowed</p>
</td>
</tr>
<tr>
<td>
<p align="left">406</p>
</td>
<td>
<p align="left">Not acceptable</p>
</td>
</tr>
<tr>
<td>
<p align="left">407</p>
</td>
<td>
<p align="left">Proxy authentication required</p>
</td>
</tr>
<tr>
<td>
<p align="left">408</p>
</td>
<td>
<p align="left">Request timeout<a name="I_indexterm3_d1e3983"></a></p>
</td>
</tr>
<tr>
<td>
<p align="left">409</p>
</td>
<td>
<p align="left">Conflict</p>
</td>
</tr>
<tr>
<td>
<p align="left">410</p>
</td>
<td>
<p align="left">Gone</p>
</td>
</tr>
<tr>
<td>
<p align="left">411</p>
</td>
<td>
<p align="left">Length required</p>
</td>
</tr>
<tr>
<td>
<p align="left">412</p>
</td>
<td>
<p align="left">Precondition failed</p>
</td>
</tr>
<tr>
<td>
<p align="left">413</p>
</td>
<td>
<p align="left">Request entity too large</p>
</td>
</tr>
<tr>
<td>
<p align="left">414</p>
</td>
<td>
<p align="left">Request-URI too long</p>
</td>
</tr>
<tr>
<td>
<p align="left">415</p>
</td>
<td>
<p align="left">Unsupported media type</p>
</td>
</tr>
<tr>
<td>
<p align="left">416</p>
</td>
<td>
<p align="left">Requested range not satisfiable</p>
</td>
</tr>
<tr>
<td>
<p align="left">417</p>
</td>
<td>
<p align="left">Expectation failed</p>
</td>
</tr>
<tr>
<td colspan="2">
<p align="left">Server error 5xx</p>
</td>
</tr>
<tr>
<td>
<p align="left">500</p>
</td>
<td>
<p align="left">Internal server error</p>
</td>
</tr>
<tr>
<td>
<p align="left">501</p>
</td>
<td>
<p align="left">Not implemented</p>
</td>
</tr>
<tr>
<td>
<p align="left">502</p>
</td>
<td>
<p align="left">Bad gateway</p>
</td>
</tr>
<tr>
<td>
<p align="left">503</p>
</td>
<td>
<p align="left">Service unavailable</p>
</td>
</tr>
<tr>
<td>
<p align="left">504</p>
</td>
<td>
<p align="left">Gateway timeout</p>
</td>
</tr>
<tr>
<td>
<p align="left">505</p>
</td>
<td>
<p align="left">HTTP version not supported</p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"> </p>
<h3  class="related_post_title">相关文章</h3><ul class="related_post"><li>2009年02月26号 -- <a href="http://ourapache.com/archives/184" title="Apache日志文件（配置和管理）">Apache日志文件（配置和管理）</a></li><li>2009年02月25号 -- <a href="http://ourapache.com/archives/176" title="网站服务器(Apache)的日志与监视">网站服务器(Apache)的日志与监视</a></li><li>2009年02月25号 -- <a href="http://ourapache.com/archives/172" title="查询并禁止apache中异常访问量的用户">查询并禁止apache中异常访问量的用户</a></li><li>2009年03月9号 -- <a href="http://ourapache.com/archives/227" title="通过SNMP协议来监视Apache服务器">通过SNMP协议来监视Apache服务器</a></li><li>2009年03月9号 -- <a href="http://ourapache.com/archives/224" title="监视并记录Apache网站服务器的运行">监视并记录Apache网站服务器的运行</a></li><li>2009年02月11号 -- <a href="http://ourapache.com/archives/130" title="实时跟踪log变化的工具Apachetop">实时跟踪log变化的工具Apachetop</a></li><li>2009年02月10号 -- <a href="http://ourapache.com/archives/117" title="让Apache按日期保存日志数据">让Apache按日期保存日志数据</a></li></ul>
	标签：<a href="http://ourapache.com/archives/category/primary" title="Apache初级应用" rel="tag">Apache初级应用</a>, <a href="http://ourapache.com/archives/tag/log" title="log" rel="tag">log</a>, <a href="http://ourapache.com/archives/tag/%e6%97%a5%e5%bf%97" title="日志" rel="tag">日志</a><br />
]]></content:encoded>
			<wfw:commentRss>http://ourapache.com/archives/243/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用apache实现禁止IP段或者主机对某个目录的访问</title>
		<link>http://ourapache.com/archives/245</link>
		<comments>http://ourapache.com/archives/245#comments</comments>
		<pubDate>Fri, 08 May 2009 04:41:24 +0000</pubDate>
		<dc:creator>OurApache</dc:creator>
				<category><![CDATA[Apache初级应用]]></category>
		<category><![CDATA[禁止IP]]></category>

		<guid isPermaLink="false">http://www.ourapache.com/?p=245</guid>
		<description><![CDATA[Allow指令影响哪些主机可以访问服务器的一个区域。可以用主机名、IP地址、 IP地址范围或者其他环境变量中捕获的客户端请求特性来对访问进行控制。]]></description>
			<content:encoded><![CDATA[<div>Allow 指令<br />
说明: 控制哪些主机能够访问服务器的一个区域<br />
语法: Allow from all|host|env=env-variable [host|env=env-variable] &#8230;<br />
上下文: 目录, .<a href="http://ourapache.com/archives/tag/htaccess" class="st_tag internal_tag" rel="tag" title="标签 htaccess 下的日志">htaccess</a><br />
覆盖项: Limit<br />
状态: Base<br />
模块: mod_access</p>
<p>Allow指令影响哪些主机可以访问服务器的一个区域。可以用主机名、IP地址、 IP地址范围或者其他环境变量中捕获的客户端请求特性来对访问进行控制。</p>
<p>这个指令的第一个参数总是from。随后的参数可以有三种不同形式。 如果指定Allow from all，则允许所有主机访问，需要 Deny和Order指令像下面讨论的那样配置。 要只允许特定一部分主机或主机群访问服务器，host可以用下面任何一种格式来指定：</p>
<p>一个域名(部分)<br />
例子：Allow from <a href="http://ourapache.com/archives/tag/apache" class="st_tag internal_tag" rel="tag" title="标签 apache 下的日志">apache</a>.org<br />
允许名字与给定字符串匹配或者以该字符串结尾的主机访问。 只有完整的名字组成部分才被匹配，因此上述例子将匹配foo.apache.org而不能匹配fooapache.org。 这样的配置将引起服务器执行一个对客户IP地址的反查域名操作而不管HostnameLookups指令是否设置<br />
完整的IP地址<br />
例子：Allow from 10.1.2.3<br />
允许一个主机的一个IP地址访问。<br />
部分IP地址<br />
例子：Allow from 10.1<br />
IP地址的开始1到3个字节，用于子网限制。<br />
网络/掩码对<br />
例子：Allow from 10.1.0.0/255.255.0.0<br />
一个网络a.b.c.d，和一个掩码w.x.y.z。用于更精确的子网限制。<br />
网络/nnn 无内别域间路由规格<br />
例子：Allow from 10.1.0.0/16<br />
同前一种情况相似，除了掩码由nnn个高位字节构成。<br />
注意以上后三个例子完全匹配同一组主机。</p>
<p>IPv6地址和IPv6子网可以像下面这样指定：</p>
<p>Allow from fe80::a00:20ff:fea7:ccea<br />
Allow from fe80::a00:20ff:fea7:ccea/10</p>
<p>Allow指令的第三种参数格式允许对服务器的访问由 环境变量的一个扩展指定。指定 Allow from env=env-variable时，如果环境变量env-variable存在则访问请求被允许。 使用由mod_setenvif提供的指令，服务器用一种基于客户端请求的弹性方式提供了设置环境变量的能力。 因此，这条指令可以用于允许基于像User-Agent(浏览器类型)、Referer或者其他Http请求头字段 的访问。</p>
<p>例子：<br />
SetEnvIf User-Agent ^KnockKnock/2.0 let_me_in<br />
&lt;Directory /docroot&gt;<br />
Order Deny,Allow<br />
Deny from all<br />
Allow from env=let_me_in<br />
&lt;/Directory&gt;</p>
<p>这种情况下，发送以KnockKnock/2.0开头的用户代理标示的浏览器将被允许访问，而所有其他浏览器将被禁止访问。</p>
<p>Deny 指令<br />
说明: 控制哪些主机被禁止访问服务器<br />
语法: Deny from all|host|env=env-variable [host|env=env-variable] &#8230;<br />
上下文: 目录, .htaccess<br />
覆盖项: Limit<br />
状态: Base<br />
模块: mod_access</p>
<p>这条指令允许基于主机名、IP地址或者环境变量限制对服务器的访问。 Deny指令的参数设置和Allow指令完全相同。</p>
<p>Order 指令<br />
说明: 控制缺省的访问状态和Allow与Deny指令被评估的顺序。<br />
语法: Order ordering<br />
默认值: Order Deny,Allow<br />
上下文: 目录, .htaccess<br />
覆盖项: Limit<br />
状态: Base<br />
模块: mod_access</p>
<p>Order指令控制缺省的访问状态和 Allow与Deny指令被评估的顺序。 Ordering是以下几种范例之一：</p>
<p>Deny,Allow<br />
Deny指令在 Allow指令之前被评估。缺省允许所有访问。 任何不匹配Deny指令或者匹配 Allow指令的客户都被允许访问服务器。<br />
Allow,Deny<br />
Allow指令在 Deny指令之前被评估。缺省禁止所有访问。 任何不匹配Allow指令或者匹配 Deny指令的客户都将被禁止访问服务器。<br />
Mutual-failure<br />
只有出现在Allow列表并且不出现在 Deny列表中的主机才被允许访问。 这种顺序与Order Allow,Deny具有同样效果，不赞成使用，它包括了哪一种配置。<br />
关键字只能用逗号分隔；它们之间不能有空格。注意在所有情况下每个Allow和Deny指令语句都将被评估。</p>
<p>在下面的例子中，apache.org域中所有主机都允许访问，而其他任何主机访问都被拒绝。</p>
<p>Order Deny,Allow<br />
Deny from all<br />
Allow from apache.org</p>
<p>下面例子中，apache.org域中所有主机，除了foo.apache.org子域包含的主机被拒绝访问以外，都允许访问。 而所有不在apache.org域中的主机都不允许访问，因为缺省状态是拒绝对服务器的访问。</p>
<p>Order Allow,Deny<br />
Allow from apache.org<br />
Deny from foo.apache.org</p>
<p>另一方面，如果上个例子中的Order指令改变为Deny,Allow， 将允许所有主机的访问。这是因为，不管配置文件中指令的实际顺序如何， Allow from apache.org指令会最后被评估到并覆盖之前的 Deny from foo.apache.org。所有不在apache.org 域中的主机也允许访问是因为缺省状态被改变到了允许。</p>
<p>即使没有伴随Allow和Deny指令，一个Order 指令的存在也会影响到服务器上某一个部分的访问， 这是由于他对缺省访问状态的影响。例如，</p>
<p>&lt;Directory /www&gt;<br />
Order Allow,Deny<br />
&lt;/Directory&gt;</p>
<p>这样将会禁止所有对/www目录的访问，因为缺省状态将被设置为拒绝.</p>
<p>Order指令只在服务器配置的每个段内部控制访问指令的处理。 这暗示着，例如，一个在&lt;Location&gt;段出现的 Allow或者Deny指令总是将会在一个&lt;Directory&gt;段或者 .htaccess文件中出现的 Allow或Deny 指令之后被评估，而不管Order指令中的设置为何。要了解配置段落合并的详细信息， 参看How Directory, Location and Files sections work相关文档</p></div>
<p><!-- / message --><!-- sig --><!-- 翻页 --></p>
<h3  class="related_post_title">无相关文章，以下随机显示</h3><ul class="related_post"><li>2009年01月22号 -- <a href="http://ourapache.com/archives/62" title="对apache中并发控制参数prefork理解和调优">对apache中并发控制参数prefork理解和调优</a></li><li>2009年02月27号 -- <a href="http://ourapache.com/archives/206" title="http header详解">http header详解</a></li><li>2009年01月6号 -- <a href="http://ourapache.com/archives/32" title="htaccess学习笔记">htaccess学习笔记</a></li><li>2009年02月25号 -- <a href="http://ourapache.com/archives/163" title="apache 的mime.types文件">apache 的mime.types文件</a></li><li>2009年02月10号 -- <a href="http://ourapache.com/archives/114" title="apache + resin的多机部署方案实现方法">apache + resin的多机部署方案实现方法</a></li><li>2009年02月27号 -- <a href="http://ourapache.com/archives/193" title="header Content-Type类型">header Content-Type类型</a></li><li>2009年08月12号 -- <a href="http://ourapache.com/archives/268" title="Etag和Expires">Etag和Expires</a></li><li>2009年12月12号 -- <a href="http://ourapache.com/archives/312" title="apache配置（如何禁止列出目录内容）">apache配置（如何禁止列出目录内容）</a></li><li>2008年12月27号 -- <a href="http://ourapache.com/archives/11" title="apxs &#8211; Apache 扩展工具">apxs &#8211; Apache 扩展工具</a></li><li>2009年02月10号 -- <a href="http://ourapache.com/archives/119" title="Apache2运用mod_deflate提升网络页面浏览速度">Apache2运用mod_deflate提升网络页面浏览速度</a></li></ul>
	标签：<a href="http://ourapache.com/archives/category/primary" title="Apache初级应用" rel="tag">Apache初级应用</a>, <a href="http://ourapache.com/archives/tag/%e7%a6%81%e6%ad%a2ip" title="禁止IP" rel="tag">禁止IP</a><br />
]]></content:encoded>
			<wfw:commentRss>http://ourapache.com/archives/245/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>apache软件体系结构</title>
		<link>http://ourapache.com/archives/238</link>
		<comments>http://ourapache.com/archives/238#comments</comments>
		<pubDate>Wed, 08 Apr 2009 06:26:15 +0000</pubDate>
		<dc:creator>OurApache</dc:creator>
				<category><![CDATA[Apache初级应用]]></category>
		<category><![CDATA[线程]]></category>
		<category><![CDATA[进程]]></category>

		<guid isPermaLink="false">http://www.ourapache.com/?p=238</guid>
		<description><![CDATA[apache不同的版本，软件体系结构差别还是比较大，一种是进程式处理connection request,另外一种是线程式处理connection request.]]></description>
			<content:encoded><![CDATA[<p><span style="color: #000000;">apache不同的版本，软件体系结构差别还是比较大，一种是进程式处理connection request,另外一种是线程式处理connection request.进程式处理如下图所示：</span></p>
<p style="text-align: center;"><span style="color: #000000;"><img class="size-full wp-image-239 aligncenter" title="1" src="http://www.ourapache.com/wp-content/uploads/2009/04/1.jpg" alt="1" width="398" height="324" /></span></p>
<p><span style="color: #000000;">如果连接比较多，parent进程会fork很多的child子进程来处理connection,每一个子进程一次只能处理一个连接，并发度低，系统吞吐量不高。还有一个比较大的缺点是占用内存多。</span></p>
<p><span style="color: #000000;">线程式处理软件结构如下图所示：</span></p>
<p style="text-align: center;"><span style="color: #000000;"><img class="size-full wp-image-240 aligncenter" title="2" src="http://www.ourapache.com/wp-content/uploads/2009/04/2.jpg" alt="2" width="640" height="479" /></span></p>
<p><span style="color: #000000;">在这种结构里，子进程仍然为父进程fork,但子进程里会有多个线程(thread),每一个线程可以处理一个连接请求，该进程内的线程共享进程的内存地址空间，CPU对线程进行调度，提高了CPU的利用率，由于减少了child进程的数据，也减少了apache的内存消耗；由于采用线程处理连接请求的机制，apache同时能够处理的连接请求大大增加。通常对apache设置如下的参数：</span></p>
<p><span style="color: #000000;">StartServers         5<br />
ServerLimit          30<br />
MaxClients           2000<br />
MinSpareThreads      75<br />
MaxSpareThreads      200<br />
ThreadsPerChild      80<br />
对于这些参数什么含义，大家可以网上google一下。</span></p>
<h3  class="related_post_title">相关文章</h3><ul class="related_post"><li>2009年02月25号 -- <a href="http://ourapache.com/archives/181" title="Apache并发控制、查看进程数、TCP连接、压缩功能说明">Apache并发控制、查看进程数、TCP连接、压缩功能说明</a></li><li>2009年01月6号 -- <a href="http://ourapache.com/archives/35" title="不再为Apache进程淤积、耗尽内存而困扰">不再为Apache进程淤积、耗尽内存而困扰</a></li></ul>
	标签：<a href="http://ourapache.com/archives/category/primary" title="Apache初级应用" rel="tag">Apache初级应用</a>, <a href="http://ourapache.com/archives/tag/%e7%ba%bf%e7%a8%8b" title="线程" rel="tag">线程</a>, <a href="http://ourapache.com/archives/tag/%e8%bf%9b%e7%a8%8b" title="进程" rel="tag">进程</a><br />
]]></content:encoded>
			<wfw:commentRss>http://ourapache.com/archives/238/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用mod_headers或mod_expires落实缓存</title>
		<link>http://ourapache.com/archives/203</link>
		<comments>http://ourapache.com/archives/203#comments</comments>
		<pubDate>Fri, 27 Feb 2009 03:25:54 +0000</pubDate>
		<dc:creator>OurApache</dc:creator>
				<category><![CDATA[Apache初级应用]]></category>
		<category><![CDATA[mod_expires]]></category>
		<category><![CDATA[mod_headers]]></category>

		<guid isPermaLink="false">http://www.ourapache.com/?p=203</guid>
		<description><![CDATA[实施这一方法将节省你难以置信数额的带宽，极大地加快你的网站为你的网站访客。基本上，对于图片，CSS ， JavaScript以及其他文件可以通过优化更快的下载，告诉你的网站访问者快取记忆体，为他们在某一段时间内。默认的行为是每一次请求检查文件的last-modified 和/或者  Etag headers。

所以一个用户去/home/index.html，及浏览器缓存所有图象和文件。然后用户离开网站稍后回来，与浏览器发送If-Modified-Since 有条件的GET 请求为每一个缓存的项目时，基本上看，如果文件已被改变和他们必须更新他们的缓存。

当你执行在这篇文章中所述的缓存方法，你可以指定某文件或扩展名被缓存为某一特定数额的时间。这些文件然后缓存在你的网站访客和他们不发送If-Modified-Since头直到设置的缓存时间已经到了。]]></description>
			<content:encoded><![CDATA[<p>     实施这一方法将节省你难以置信数额的带宽，极大地加快你的网站为你的网站访客。基本上，对于图片，CSS ， JavaScript以及其他文件可以通过优化更快的下载，告诉你的网站访问者快取记忆体，为他们在某一段时间内。默认的行为是每一次请求检查文件的last-modified 和/或者  Etag headers。</p>
<p>    所以一个用户去/home/index.html，及浏览器缓存所有图象和文件。然后用户离开网站稍后回来，与浏览器发送If-Modified-Since 有条件的GET 请求为每一个缓存的项目时，基本上看，如果文件已被改变和他们必须更新他们的缓存。</p>
<p>    当你执行在这篇文章中所述的缓存方法，你可以指定某文件或扩展名被缓存为某一特定数额的时间。这些文件然后缓存在你的网站访客和他们不发送If-Modified-Since头直到设置的缓存时间已经到了。</p>
<blockquote><p>#================================================= ============================#<br />
# TIME CHEAT SHEET<br />
#================================================= ============================#<br />
# 300 5 M # 604800 1 W<br />
# 2700 45 M # 1814400 3 W<br />
# 3600 1 H # 2419200 1 M<br />
# 54000 15 H # 14515200 6 M<br />
# 86400 1 D # 26611200 11 M<br />
# 518400 6 D # 29030400 1 Y (never expire)</p></blockquote>
<p>    第一个解决办法是Apache模块mod_expires <a href="http://httpd.apache.org/docs/1.3/mod/mod_expires.html"><span style="color: #3388cc;">1.3</span></a> <a href="http://httpd.apache.org/docs/2.0/mod/mod_expires.html"><span style="color: #3388cc;">2.0</span></a> <a href="http://httpd.apache.org/docs/2.0/mod/mod_expires.html"><span style="color: #3388cc;">2.2</span></a></p>
<blockquote><p>ExpiresActive On<br />
ExpiresDefault A300<br />
ExpiresByType image/x-icon A2592000<br />
ExpiresByType application/x-javascript A2592000<br />
ExpiresByType text/css A2592000<br />
ExpiresByType image/gif A604800<br />
ExpiresByType image/png A604800<br />
ExpiresByType image/jpeg A604800<br />
ExpiresByType text/plain A604800<br />
ExpiresByType application/x-shockwave-flash A604800<br />
ExpiresByType video/x-flv A604800<br />
ExpiresByType application/pdf A604800<br />
ExpiresByType text/html A300</p></blockquote>
<p>    第二个解决办法是mod_headers <a href="http://httpd.apache.org/docs/1.3/mod/mod_headers.html"><span style="color: #3388cc;">1.3</span></a> <a href="http://httpd.apache.org/docs/2.0/mod/mod_headers.html"><span style="color: #3388cc;">2.0</span></a> <a href="http://httpd.apache.org/docs/2.2/mod/mod_headers.html"><span style="color: #3388cc;">2.2</span></a></p>
<blockquote><p> # YEAR<br />
&lt;FilesMatch “\.(flv|gif|ico)$”&gt;<br />
Header set <a href="http://ourapache.com/archives/tag/cache" class="st_tag internal_tag" rel="tag" title="标签 cache 下的日志">Cache</a>-Control “max-age=2592000″<br />
&lt;/FilesMatch&gt;</p>
<p># WEEK<br />
&lt;FilesMatch “\.(pdf|swf|js|css)$”&gt;<br />
Header set Cache-Control “max-age=604800″<br />
&lt;/FilesMatch&gt;</p>
<p># NEVER CACHE<br />
&lt;FilesMatch “\.(html|cgi|php|htm)$”&gt;<br />
Header set Expires “Thu, 01 Dec 2003 16:00:00 GMT”<br />
Header set Cache-Control “no-store, no-cache, must-revalidate”<br />
Header set Pragma “no-cache”<br />
&lt;/FilesMatch&gt;</p></blockquote>
<p id="result_box" dir="ltr">    注：<a href="http://www.askapache.com/htaccess/using-filesmatch-and-files-in-htaccess.html"><span style="color: #3388cc;">用filesmatch和files在htaccess文件</span></a></p>
<p dir="ltr">    这里是Headers当下载一个JPEG图像的时候，</p>
<p id="result_box" dir="ltr">    这个缓存方案实施后和没有缓存时的效果。</p>
<p dir="ltr">    JPEG 没有缓存的时</p>
<blockquote>
<p dir="ltr">Last-Modified: Wed, 22 Feb 2006 12:16:56 GMT<br />
ETag: “b57d54-45e7″<br />
Accept-Ranges: bytes<br />
Content-Length: 17895<br />
Connection: close<br />
Content-Type: image/jpeg</p>
</blockquote>
<p dir="ltr">    缓存过的</p>
<blockquote>
<p dir="ltr">Cache-Control: max-age=2592000<br />
Expires: Tue, 28 Mar 2006 16:23:52 GMT<br />
Last-Modified: Wed, 22 Feb 2006 12:16:56 GMT<br />
ETag: “b57d54″<br />
Accept-Ranges: bytes<br />
Content-Length: 17895<br />
Connection: close<br />
Content-Type: image/jpeg<br />
Content-Language: en</p>
</blockquote>
<p id="result_box" dir="ltr">附：</p>
<p dir="ltr">apache配置文件例子：</p>
<blockquote>
<p dir="ltr">example 1</p>
<p dir="ltr"># htm files are php<br />
AddHandler application/x-httpd-php .php .htm</p>
<p># setup errordocuments to local php file<br />
ErrorDocument 404 /cgi-bin/error.htm<br />
ErrorDocument 403 /cgi-bin/error.htm<br />
ErrorDocument 500 /cgi-bin/error.htm</p>
<p># Turn on Expires and set default expires to 3 days<br />
ExpiresActive On<br />
ExpiresDefault A259200</p>
<p># Set up caching on media files for 1 month<br />
&lt;FilesMatch “\.(ico|gif|jpg|jpeg|png|flv|pdf|swf|mov|mp3|wmv|pp t)$”&gt;<br />
ExpiresDefault A2419200<br />
Header append Cache-Control “public”<br />
&lt;/FilesMatch&gt;</p>
<p># Set up 2 Hour caching on commonly updated files<br />
&lt;FilesMatch “\.(xml|txt|html|js|css)$”&gt;<br />
ExpiresDefault A7200<br />
Header append Cache-Control “private, must-revalidate”<br />
&lt;/FilesMatch&gt;</p>
<p># Force no caching for dynamic files<br />
&lt;FilesMatch “\.(php|cgi|pl|htm)$”&gt;<br />
ExpiresDefault A0<br />
Header set Cache-Control “no-store, no-cache, must-revalidate, max-age=0″<br />
Header set Pragma “no-cache”<br />
&lt;/FilesMatch&gt;</p>
</blockquote>
<p dir="ltr">example 2</p>
<blockquote>
<p dir="ltr"># htm files are php<br />
AddHandler application/x-httpd-php .php .htm</p>
<p># setup errordocuments to local php file<br />
ErrorDocument 404 /cgi-bin/error.htm<br />
ErrorDocument 403 /cgi-bin/error.htm<br />
ErrorDocument 500 /cgi-bin/error.htm</p>
<p># Turn on Expires and set default to 0<br />
ExpiresActive On<br />
ExpiresDefault A0</p>
<p># Set up caching on media files for 1 year (forever?)<br />
&lt;FilesMatch “\.(ico|flv|pdf|mov|mp3|wmv|ppt)$”&gt;<br />
ExpiresDefault A29030400<br />
Header append Cache-Control “public”<br />
&lt;/FilesMatch&gt;</p>
<p># Set up caching on media files for 1 week<br />
&lt;FilesMatch “\.(gif|jpg|jpeg|png|swf)$”&gt;<br />
ExpiresDefault A604800<br />
Header append Cache-Control “public, proxy-revalidate”<br />
&lt;/FilesMatch&gt;</p>
<p># Set up 2 Hour caching on commonly updated files<br />
&lt;FilesMatch “\.(xml|txt|html|js|css)$”&gt;<br />
ExpiresDefault A7200<br />
Header append Cache-Control “private, proxy-revalidate, must-revalidate”<br />
&lt;/FilesMatch&gt;</p>
<p># Force no caching for dynamic files<br />
&lt;FilesMatch “\.(php|cgi|pl|htm)$”&gt;<br />
ExpiresDefault A0<br />
Header set Cache-Control “no-cache, no-store, must-revalidate, max-age=0, proxy-revalidate, no-transform”<br />
Header set Pragma “no-cache”<br />
&lt;/FilesMatch&gt;</p>
</blockquote>
<p>-end-</p>
<p> 原始文章: Speed Up Sites with <a href="http://ourapache.com/archives/tag/htaccess" class="st_tag internal_tag" rel="tag" title="标签 htaccess 下的日志">htaccess</a> Caching (<a href="http://www.askapache.com/htaccess/speed-up-sites-with-htaccess-caching.html"><span style="color: #009de5;">http://www.askapache.com/htaccess/speed-up-sites-with-htaccess-caching.html</span></a><a href="http://www.askapache.com/2006/htaccess/speed-up-sites-with-htaccess-caching.html"></a>)</p>
<p> 翻译：<a href="http://www.pcstar.net.ru/"><span style="color: #3388cc;">XINGXING</span></a></p>
<h3  class="related_post_title">无相关文章，以下随机显示</h3><ul class="related_post"><li>2009年02月7号 -- <a href="http://ourapache.com/archives/97" title="使用apache下的301设置来做域名的更换转移">使用apache下的301设置来做域名的更换转移</a></li><li>2009年02月25号 -- <a href="http://ourapache.com/archives/176" title="网站服务器(Apache)的日志与监视">网站服务器(Apache)的日志与监视</a></li><li>2009年01月15号 -- <a href="http://ourapache.com/archives/38" title="Apache服务器安全防范">Apache服务器安全防范</a></li><li>2009年02月10号 -- <a href="http://ourapache.com/archives/119" title="Apache2运用mod_deflate提升网络页面浏览速度">Apache2运用mod_deflate提升网络页面浏览速度</a></li><li>2009年02月27号 -- <a href="http://ourapache.com/archives/211" title="Apache common-pool, common-dbcp源码解读与对象池原理剖析">Apache common-pool, common-dbcp源码解读与对象池原理剖析</a></li><li>2009年01月22号 -- <a href="http://ourapache.com/archives/64" title="Apache连接数设置prefork">Apache连接数设置prefork</a></li><li>2009年01月5号 -- <a href="http://ourapache.com/archives/19" title="重大漏洞, 让Apache上传不安全-php.rar">重大漏洞, 让Apache上传不安全-php.rar</a></li><li>2009年08月13号 -- <a href="http://ourapache.com/archives/284" title="Apache负载均衡设置方法: mod_proxy">Apache负载均衡设置方法: mod_proxy</a></li><li>2009年06月14号 -- <a href="http://ourapache.com/archives/253" title="Apache自动添加地址末尾的斜线">Apache自动添加地址末尾的斜线</a></li><li>2009年01月22号 -- <a href="http://ourapache.com/archives/68" title="apache最大连接数性能测试">apache最大连接数性能测试</a></li></ul>
	标签：<a href="http://ourapache.com/archives/category/primary" title="Apache初级应用" rel="tag">Apache初级应用</a>, <a href="http://ourapache.com/archives/tag/mod_expires" title="mod_expires" rel="tag">mod_expires</a>, <a href="http://ourapache.com/archives/tag/mod_headers" title="mod_headers" rel="tag">mod_headers</a><br />
]]></content:encoded>
			<wfw:commentRss>http://ourapache.com/archives/203/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache缓存系统</title>
		<link>http://ourapache.com/archives/178</link>
		<comments>http://ourapache.com/archives/178#comments</comments>
		<pubDate>Wed, 25 Feb 2009 10:25:04 +0000</pubDate>
		<dc:creator>OurApache</dc:creator>
				<category><![CDATA[Apache初级应用]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[缓存]]></category>

		<guid isPermaLink="false">http://www.ourapache.com/?p=178</guid>
		<description><![CDATA[Apache 从2.0开始就已经可以使用缓存模块了，不过在2.0的时候还是实验性的，到了2.2已经完全可以放心的使用。Apache 的缓存实现主要依靠 mod_cache、mod_disk_cache、mod_file_cache 及 mod_mem_cache。只需在配置编译的时候加上参数：–enable-cache、 –enable-disk-cache、–enable-file-cache、 –enable-mem-cache 即可。]]></description>
			<content:encoded><![CDATA[<p><a href="http://ourapache.com/archives/tag/apache" class="st_tag internal_tag" rel="tag" title="标签 apache 下的日志">Apache</a> 从2.0开始就已经可以使用缓存模块了，不过在2.0的时候还是实验性的，到了2.2已经完全可以放心的使用。<a href="http://ourapache.com/archives/tag/apache" class="st_tag internal_tag" rel="tag" title="标签 apache 下的日志">Apache</a> 的缓存实现主要依靠 mod_<a href="http://ourapache.com/archives/tag/cache" class="st_tag internal_tag" rel="tag" title="标签 cache 下的日志">cache</a>、mod_disk_<a href="http://ourapache.com/archives/tag/cache" class="st_tag internal_tag" rel="tag" title="标签 cache 下的日志">cache</a>、mod_file_<a href="http://ourapache.com/archives/tag/cache" class="st_tag internal_tag" rel="tag" title="标签 cache 下的日志">cache</a> 及 mod_mem_<a href="http://ourapache.com/archives/tag/cache" class="st_tag internal_tag" rel="tag" title="标签 cache 下的日志">cache</a>。只需在配置编译的时候加上参数：–enable-<a href="http://ourapache.com/archives/tag/cache" class="st_tag internal_tag" rel="tag" title="标签 cache 下的日志">cache</a>、 –enable-disk-<a href="http://ourapache.com/archives/tag/cache" class="st_tag internal_tag" rel="tag" title="标签 cache 下的日志">cache</a>、–enable-file-<a href="http://ourapache.com/archives/tag/cache" class="st_tag internal_tag" rel="tag" title="标签 cache 下的日志">cache</a>、 –enable-mem-<a href="http://ourapache.com/archives/tag/cache" class="st_tag internal_tag" rel="tag" title="标签 cache 下的日志">cache</a> 即可。</p>
<p>关于 Apache 的编译安装本文就不再说了，可以参考以前的文章。这里主要介绍一下如何配置使用 Apache 的缓存功能。<br />
具体来说，Apache 的缓存方式有两种，一种是基于硬盘文件的缓存，由 mod_disk_cache 实现，另一种是使用内存缓存，由 mod_mem_cache 实现，不过它们都是依赖 mod_cache 模块的，mod_cache 模块提供了一些缓存配置的指令供它们使用，而 mod_file_cache 模块是搭配 mod_mem_cache 模块使用的，下面分别进行介绍。</p>
<p>1、基于硬盘文件的缓存<br />
基于硬盘文件存储的缓存由 mod_disk_cache 模块实现，先看个简单的配置例子：</p>
<blockquote><p>CacheDefaultExpire 86400<br />
CacheEnable disk /<br />
CacheRoot /tmp/apacheCache<br />
CacheDirLevels 5<br />
CacheDirLength 5<br />
CacheMaxFileSize 1048576<br />
CacheMinFileSize 10</p></blockquote>
<p>把上面的配置加到 Apache 的 httpd.conf 文件中，如果缓存相关的模块都已经编译进了 Apache 的核心，则无需加载模块，直接就能使用上面的指令。指令的详细说明如下：</p>
<p>CacheDefaultExpire： 设定缓存过期的时间（秒），默认是1小时，只有当缓存的文档没有设置过期时间或最后修改时间时这个指令才会生效<br />
CacheEnable：启用缓存，第1个参数是缓存类弄，这里当然是 disk了，第2个参数是缓存路径，指的是 url <a href="http://ourapache.com/archives/tag/%e8%b7%af%e5%be%84" class="st_tag internal_tag" rel="tag" title="标签 路径 下的日志">路径</a>，这里是缓存所有的东西，直接写上“/”即可，如“/docs”则只缓存 /docs 下的所有文件<br />
CacheRoot：缓存文件所在的目录，运行 Apache 的用户（如daemon 或 nobody）要能对其进行读写，如果不清楚的话可以直接设置成 777，请手动建立该目录并设置好访问权限<br />
CacheDirLevels：缓存目录的深度，默认是3，这里设置为5<br />
CacheDirLength：缓存目录名的字符长度，默认是4，这里设置为5<br />
CacheMaxFileSize 和 CacheMaxFileSize：缓存文件的最大值和最小值（byte），当超过这个范围时将不再缓存，这里设置为 1M 和 10bytes</p>
<p>基于硬盘文件存储的文件基本上就这些内容，设置好后重启 Apache 应该就能使用了。一切正常的话，可以在缓存目录下看到 Apache 自动建立的一些目录和缓存的数据文件。</p>
<p>2、基于内存的缓存<br />
基于内存的缓存主要由 mod_mem_cache 模块实现，还是看个简单的配置吧，这样比较直观:-)</p>
<blockquote><p>CacheEnable mem /<br />
MCacheMaxObjectCount 20000<br />
MCacheMaxObjectSize 1048576<br />
MCacheMaxStreamingBuffer 65536<br />
MCacheMinObjectSize 10<br />
MCacheRemovalAlgorithm GDSF<br />
MCacheSize 131072</p></blockquote>
<p>简单说一下上面一些指令的意思：</p>
<p>CacheEnable：启用缓存，使用基于内存的方式存储<br />
MCacheMaxObjectCount：在内存中最多能存储缓存对象的个数，默认是1009，这里设置为20000<br />
MCacheMaxObjectSize：单个缓存对象最大为 1M，默认是10000bytes<br />
MCacheMaxStreamingBuffer：在缓冲区最多能够放置多少的将要被缓存对象的尺寸，这里设置为 65536，该值通常小于100000或 MCacheMaxObjectSize 设置的值<br />
MCacheMinObjectSize：单个缓存对象最小为10bytes，默认为1bytes<br />
MCacheRemovalAlgorithm：清除缓存所使用的算法，默认是 GDSF，还有一个是LRU，可以查一下 Apache 的官方文档，上面有些介绍<br />
MCacheSize：缓存数据最多能使用的内存，单位是 kb，默认是100kb，这里设置为128M<br />
保存重启 Apache 基于内存的缓存系统应该就能生效了，根据需要可以使基于内存的存储或硬盘文件的存储方式一起使用，只要指明不同的URL路径即可。</p>
<p>3、注意事项<br />
使用缓存需要注意如下事项：</p>
<p>要使用缓存，必须使用指令 CacheEnable 启用它，目前可用的缓存类型为 disk 或 mem，禁止缓存可以使用 CacheDisable，如 CacheDisable /private<br />
待缓存的 URL 返回的状态值必须为： 200、203、300、<a href="http://ourapache.com/archives/tag/301" class="st_tag internal_tag" rel="tag" title="标签 301 下的日志">301</a> 或 410<br />
URL 的请求方式必须是 GET 方式<br />
发送请求时，头部中包含 “Authorization: ”的字符串时，返回的内容将不会被缓存<br />
URL 包含查询字符串，如问号?后的那些东西，除非返回的内容包含“Expires:”，否则不会被缓存<br />
如果返回的状态值是 200，则返回的头部信息必须包含以下的一种才会被缓存：Etag、Last-Modified、Expires，除非设置了指令 CacheIgnoreNoLastMod On<br />
如果返回内容的头部信息“Cache-Control:”中包含“private”，除非设置了指令 CacheStorePrivate On，否则不会被缓存<br />
如果返回内容的头部信息“Cache-Control:”中包含“no-sotre”，除非设置了指令 CacheStoreNoStore On，否则不会被缓存<br />
如果返回内容的头部信息“Vary:”中包含了“*”，不会被缓存</p>
<p>4、其它一些指令的介绍<br />
如果你的网站有几个文件的访问非常频繁而又不经常变动，则可以在 Apache 启动的时候就把它们的内容缓存到内存中（当然要启用内存缓存系统），使用的是 mod_file_cache 模块，具体如下：<br />
有多个文件可以用空格格开</p>
<blockquote><p>MMapFile /var/www/html/index.html /var/www/html/articles/index.html</p></blockquote>
<p>上面是缓存文件的内容到内存中，除此之外，还可以只缓存文件的打开句柄到内存中，当有请求进来的时候，Apache 直接从内存中获取文件的句柄，返回内容，和 MMapFile 指令很像，具体如下：</p>
<blockquote><p>CacheFile /var/www/html/index.html /var/www/html/articles/index.html</p></blockquote>
<p>上面两个指令所缓存的文件如果有修改的话，必须重启 Apache 或使用 graceful 之类的方式强制使 Apache 更新缓存数据，否则当用户访问的时候获取的不是最新的数据。</p>
<p>有时候需要根据某些特殊的头部信息来决定是否进行缓存，则可以使用如下指令：<br />
当头部信息中包含 Set-Cookie 时则跳过不进行缓存操作</p>
<blockquote><p>CacheIgnoreHeaders Set-Cookie</p></blockquote>
<p>有时候需要缓存的时候跳过 URL 中的查询字符串？使用如下指令：</p>
<blockquote><p>CacheIgnoreQueryString On</p></blockquote>
<p>Apache 的缓存系统不仅可以缓存服务器本身的文件，也可以缓存通过代理得到的内容，对了，Apache 可以像 Squid 一样做代理，而且做的还不错，下篇文章就介绍一下 Apache 的代理功能吧。善用 Apache 的缓存功能，可以让你的网站速度提升不少。做为一个网站来说，虽然可用的各种缓存方案很多，但在 Web 服务器层做缓存的效率还是很值得一试的。</p>
<h3  class="related_post_title">相关文章</h3><ul class="related_post"><li>2009年02月25号 -- <a href="http://ourapache.com/archives/165" title="Apache 设置web 缓存">Apache 设置web 缓存</a></li><li>2009年09月6号 -- <a href="http://ourapache.com/archives/303" title="基于资源的HTTP Cache的实现介绍">基于资源的HTTP Cache的实现介绍</a></li><li>2009年02月27号 -- <a href="http://ourapache.com/archives/209" title="面向站长和网站管理员的Web缓存加速指南">面向站长和网站管理员的Web缓存加速指南</a></li><li>2009年02月27号 -- <a href="http://ourapache.com/archives/187" title="header中的Cache-control参数说明">header中的Cache-control参数说明</a></li><li>2009年02月7号 -- <a href="http://ourapache.com/archives/89" title="Apache PHP利用HTTP缓存协议原理解析及应用">Apache PHP利用HTTP缓存协议原理解析及应用</a></li></ul>
	标签：<a href="http://ourapache.com/archives/category/primary" title="Apache初级应用" rel="tag">Apache初级应用</a>, <a href="http://ourapache.com/archives/tag/cache" title="cache" rel="tag">cache</a>, <a href="http://ourapache.com/archives/tag/%e7%bc%93%e5%ad%98" title="缓存" rel="tag">缓存</a><br />
]]></content:encoded>
			<wfw:commentRss>http://ourapache.com/archives/178/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>查询并禁止apache中异常访问量的用户</title>
		<link>http://ourapache.com/archives/172</link>
		<comments>http://ourapache.com/archives/172#comments</comments>
		<pubDate>Wed, 25 Feb 2009 10:17:50 +0000</pubDate>
		<dc:creator>OurApache</dc:creator>
				<category><![CDATA[Apache初级应用]]></category>
		<category><![CDATA[log]]></category>
		<category><![CDATA[日志]]></category>

		<guid isPermaLink="false">http://www.ourapache.com/?p=172</guid>
		<description><![CDATA[Apache中的异常访问，通常指的是频繁、大量访问的用户，通过apache的log，结合linux下的几个命令，可以分析这些用户，并通过apache的配置文件来禁止他们访问。]]></description>
			<content:encoded><![CDATA[<p>Apache中的异常访问，通常指的是频繁、大量访问的用户，通过apache的log，结合linux下的几个命令，可以分析这些用户，并通过apache的配置文件来禁止他们访问。</p>
<p>首先，更改apache的log方式，不记录一些图像、css等文件，这样在log中每一行基本上都能对应一次访问，如果不去除图像等文件的记录，正常用户访问一个页面，同时也会下载页面上的图像、css等文件，会产生多条log记录，影响计数的结果。在apache的conf文件中增加如下配置：</p>
<p>SetEnvIfNoCase Request_URI \.css$ useless-file<br />
SetEnvIfNoCase Request_URI \.gif$ useless-file<br />
SetEnvIfNoCase Request_URI \.ico$ useless-file<br />
SetEnvIfNoCase Request_URI \.jpg$ useless-file<br />
SetEnvIfNoCase Request_URI \.js$ useless-file<br />
CustomLog logs/fwolf.com/access.<a href="http://ourapache.com/archives/tag/log" class="st_tag internal_tag" rel="tag" title="标签 log 下的日志">log</a> combined env=!useless-file</p>
<p>这样就可以了，关于SetEnvIf的其他用法，可以参见Apache文档中SetEnvIf和Environment Variables in Apache部分。</p>
<p>接下来，经过一段时间的运行，我们就可以分析log文件中访问量最大的用户了，只需要一条命令：</p>
<p>cat access.log |awk &#8216;{print $1}&#8217;| sort | uniq -c |sort -n</p>
<p>一点点的来看：</p>
<p>cat就不用说了；<br />
awk的作用，就是把第一列，也就是客户端ip地址分拣出来；<br />
第一个sort，是把分拣出来的ip地址排序，这样相同的ip地址会排在一起<br />
uniq是一个去除重复值的工具，但是带上-c参数，就可以统计出每个值出现了多少次<br />
最后的sort，把uniq产生的结果进行排序，按照-n这个参数的默认设置，最大的排在最下面。<br />
所以，我们得到的结果应该是这样的：</p>
<p>&#8230;&#8230;<br />
2040 219.148.106.198<br />
2047 218.12.78.14<br />
2149 218.12.26.233<br />
2205 121.28.4.34</p>
<p>第一列就是访问次数，第二列是ip地址，再回去对照log文件中的详细内容，如果发现哪个访问量大户是某某机器人的话，就可以禁止掉了，还是修改apache的conf文件：</p>
<p>&lt;Directory /&gt;<br />
    Order Deny,Allow<br />
    Deny from 219.143.69.2<br />
    Deny from 218.12.26.233<br />
    Deny from 61.135.162.51<br />
    Allow from all<br />
&lt;/Directory&gt;</p>
<p>如此反复监测、设置，直到没有人捣乱为止。</p>
<p>同理，如果想查看反复刷新查看某一页面的用户，可以用如下命令：</p>
<p>grep “GET /url/to/some/file” access.log |awk &#8216;{print $1}&#8217; |sort |uniq -c |sort -n</p>
<h3  class="related_post_title">相关文章</h3><ul class="related_post"><li>2009年06月1号 -- <a href="http://ourapache.com/archives/243" title="玩转apache之日志">玩转apache之日志</a></li><li>2009年02月26号 -- <a href="http://ourapache.com/archives/184" title="Apache日志文件（配置和管理）">Apache日志文件（配置和管理）</a></li><li>2009年02月25号 -- <a href="http://ourapache.com/archives/176" title="网站服务器(Apache)的日志与监视">网站服务器(Apache)的日志与监视</a></li><li>2009年03月9号 -- <a href="http://ourapache.com/archives/227" title="通过SNMP协议来监视Apache服务器">通过SNMP协议来监视Apache服务器</a></li><li>2009年03月9号 -- <a href="http://ourapache.com/archives/224" title="监视并记录Apache网站服务器的运行">监视并记录Apache网站服务器的运行</a></li><li>2009年02月11号 -- <a href="http://ourapache.com/archives/130" title="实时跟踪log变化的工具Apachetop">实时跟踪log变化的工具Apachetop</a></li><li>2009年02月10号 -- <a href="http://ourapache.com/archives/117" title="让Apache按日期保存日志数据">让Apache按日期保存日志数据</a></li></ul>
	标签：<a href="http://ourapache.com/archives/category/primary" title="Apache初级应用" rel="tag">Apache初级应用</a>, <a href="http://ourapache.com/archives/tag/log" title="log" rel="tag">log</a>, <a href="http://ourapache.com/archives/tag/%e6%97%a5%e5%bf%97" title="日志" rel="tag">日志</a><br />
]]></content:encoded>
			<wfw:commentRss>http://ourapache.com/archives/172/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache 两种虚拟主机方式的区别</title>
		<link>http://ourapache.com/archives/170</link>
		<comments>http://ourapache.com/archives/170#comments</comments>
		<pubDate>Wed, 25 Feb 2009 10:16:26 +0000</pubDate>
		<dc:creator>OurApache</dc:creator>
				<category><![CDATA[Apache初级应用]]></category>
		<category><![CDATA[虚拟主机]]></category>

		<guid isPermaLink="false">http://www.ourapache.com/?p=170</guid>
		<description><![CDATA[大多数人可能就知道 Apache 的基于名字的虚拟主机，不知道 Apache 还可以有基于 IP 的虚拟主机。前者的道理不言自明，多个域名（服务器）对应一个 IP 地址，配置方法如文。]]></description>
			<content:encoded><![CDATA[<p>大多数人可能就知道 <a href="http://ourapache.com/archives/tag/apache" class="st_tag internal_tag" rel="tag" title="标签 apache 下的日志">Apache</a> 的基于名字的虚拟主机，不知道 <a href="http://ourapache.com/archives/tag/apache" class="st_tag internal_tag" rel="tag" title="标签 apache 下的日志">Apache</a> 还可以有基于 IP 的虚拟主机。前者的道理不言自明，多个域名（服务器）对应一个 IP 地址，配置方法为：</p>
<p>NameVirtualHost 111.22.33.44<br />
&lt;VirtualHost 111.22.33.44&gt;<br />
ServerName www.sample.com<br />
DocumentRoot /www/sample<br />
&lt;/VirtualHost&gt;</p>
<p>&lt;VirtualHost 111.22.33.44&gt;<br />
ServerName www.sample2.com<br />
DocumentRoot /www/sample2<br />
&lt;/VirtualHost&gt;</p>
<p>但是在有些 IP 地址充裕，但是机器资源紧张的环境下，我们可能要把多个域名解析到同一台机器上，其配置方法为：</p>
<p>&lt;VirtualHost www.smallco.com&gt;<br />
ServerName www.smallco.com<br />
DocumentRoot /groups/smallco/www<br />
&lt;/VirtualHost&gt;</p>
<p>&lt;VirtualHost www.baygroup.org&gt;<br />
ServerName www.baygroup.org<br />
DocumentRoot /groups/baygroup/www<br />
&lt;/VirtualHost&gt;</p>
<p>这种方法下，要求机器配置多个 IP 地址</p>
<p>&#8212;&#8212;&#8212;&#8212;-实例，配好了，还支持JSP后台,嘿嘿。&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>NameVirtualHost <a href="http://www.mnsch.com/">www.mnsch.com</a></p>
<p>#<br />
# VirtualHost example:<br />
# Almost any Apache directive may go into a VirtualHost container.<br />
# The first VirtualHost section is used for requests without a known<br />
# server name.<br />
#<br />
#&lt;VirtualHost *:80&gt;<br />
#    ServerAdmin <a href="mailto:webmaster@dummy-host.example.com">webmaster@dummy-host.example.com</a><br />
#    DocumentRoot /www/docs/dummy-host.example.com<br />
#    ServerName dummy-host.example.com<br />
#    ErrorLog logs/dummy-host.example.com-error_<a href="http://ourapache.com/archives/tag/log" class="st_tag internal_tag" rel="tag" title="标签 log 下的日志">log</a><br />
#    CustomLog logs/dummy-host.example.com-access_log common<br />
#&lt;/VirtualHost&gt;</p>
<p>#默认主机<br />
&lt;VirtualHost <a href="http://www.mnsch.com/">www.mnsch.com</a>&gt;<br />
ServerAdmin <a href="mailto:webmaster@mnsch.com">webmaster@mnsch.com</a><br />
   DocumentRoot /home/web<br />
   ServerName <a href="http://www.mnsch.com/">www.mnsch.com</a><br />
     &lt;IfModule mod_weblogic.c&gt;<br />
       WebLogicHost <a href="http://www.mnsch.com/">www.mnsch.com</a><br />
       WebLogicPort 7001<br />
      MatchExpression *.jsp<br />
     MatchExpression *.do<br />
   &lt;/IfModule&gt;<br />
#   ErrorLog logs/dummy-host.example.com-error_log<br />
#   CustomLog logs/dummy-host.example.com-access_log common<br />
&lt;/VirtualHost&gt;</p>
<p>#默认主机blog<br />
&lt;VirtualHost blog.mnsch.com&gt;<br />
    ServerAdmin <a href="mailto:webmaster@mnsch.com">webmaster@mnsch.com</a><br />
    DocumentRoot /home/blog<br />
    ServerName blog.mnsch.com<br />
    &lt;IfModule mod_weblogic.c&gt;<br />
      WebLogicHost blog.mnsch.com<br />
      WebLogicPort 7001<br />
      MatchExpression *.jsp<br />
      MatchExpression *.do<br />
   &lt;/IfModule&gt;<br />
   &lt;Directory “/home/blog”&gt;<br />
       Options FollowSymLinks<br />
       AllowOverride None<br />
       Order allow,deny<br />
       Allow from all<br />
   &lt;/Directory&gt;<br />
#   ErrorLog logs/dummy-host.example.com-error_log<br />
#   CustomLog logs/dummy-host.example.com-access_log common<br />
&lt;/VirtualHost&gt;<br />
#默认主机club<br />
&lt;VirtualHost club.mnsch.com&gt;<br />
    ServerAdmin <a href="mailto:webmaster@mnsch.com">webmaster@mnsch.com</a><br />
    DocumentRoot /home/club<br />
    ServerName club.mnsch.com<br />
    &lt;IfModule mod_weblogic.c&gt;<br />
      WebLogicHost club.mnsch.com<br />
      WebLogicPort 7001<br />
      MatchExpression *.jsp<br />
      MatchExpression *.do<br />
   &lt;/IfModule&gt;<br />
   &lt;Directory “/home/club”&gt;<br />
       Options FollowSymLinks<br />
       AllowOverride None<br />
       Order allow,deny<br />
       Allow from all<br />
   &lt;/Directory&gt;<br />
#   ErrorLog logs/dummy-host.example.com-error_log<br />
#   CustomLog logs/dummy-host.example.com-access_log common<br />
&lt;/VirtualHost&gt;</p>
<p> </p>
<p>#张晓加<br />
# WebLogic Server 8.1 plug-in<br />
LoadModule weblogic_module modules/mod_wl_20.so<br />
      &lt;IfModule mod_weblogic.c&gt;<br />
         WebLogicHost 192.168.1.4<br />
        WebLogicPort 7001<br />
        MatchExpression *.jsp<br />
        MatchExpression *.do<br />
     &lt;/IfModule&gt;</p>
<h3  class="related_post_title">相关文章</h3><ul class="related_post"><li>2009年02月22号 -- <a href="http://ourapache.com/archives/161" title="在Windows上手动配置Apache下面的虚拟主机站点">在Windows上手动配置Apache下面的虚拟主机站点</a></li><li>2009年02月7号 -- <a href="http://ourapache.com/archives/92" title="在Apache下限制每个虚拟主机的并发数">在Apache下限制每个虚拟主机的并发数</a></li><li>2008年12月27号 -- <a href="http://ourapache.com/archives/9" title="apache禁止使用IP访问的实现方法">apache禁止使用IP访问的实现方法</a></li></ul>
	标签：<a href="http://ourapache.com/archives/category/primary" title="Apache初级应用" rel="tag">Apache初级应用</a>, <a href="http://ourapache.com/archives/tag/%e8%99%9a%e6%8b%9f%e4%b8%bb%e6%9c%ba" title="虚拟主机" rel="tag">虚拟主机</a><br />
]]></content:encoded>
			<wfw:commentRss>http://ourapache.com/archives/170/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>apache ab压力测试收藏</title>
		<link>http://ourapache.com/archives/168</link>
		<comments>http://ourapache.com/archives/168#comments</comments>
		<pubDate>Wed, 25 Feb 2009 10:14:32 +0000</pubDate>
		<dc:creator>OurApache</dc:creator>
				<category><![CDATA[Apache初级应用]]></category>
		<category><![CDATA[ab]]></category>
		<category><![CDATA[压力]]></category>

		<guid isPermaLink="false">http://www.ourapache.com/?p=168</guid>
		<description><![CDATA[以前安装好APACHE总是不知道该如何测试APACHE的性能，现在总算找到一个测试工具了。就是APACHE自带的测试工具AB(apache benchmark).在APACHE的bin目录下。 格式： ./ab [options] [http://]hostname[:port]/path 参数：     -n requests     Number of requests to perform     //在测试会话中所执行的请求个数。默认时，仅执行一个请求     -c concurrency Number of multiple requests to make     //一次产生的请求个数。默认是一次一个。     -t timelimit    Seconds to max. wait for responses     //测试所进行的最大秒数。其内部隐含值是-n 50000。它可以使对服务器的测试限制在一个固定的总时间以内。默认时，没有时间限制。     -p postfile     File containing data to POST     //包含了需要POST的数据的文件.     -T content-type Content-type header [...]]]></description>
			<content:encoded><![CDATA[<p>以前安装好APACHE总是不知道该如何测试APACHE的性能，现在总算找到一个测试工具了。就是APACHE自带的测试工具AB(<a href="http://ourapache.com/archives/tag/apache" class="st_tag internal_tag" rel="tag" title="标签 apache 下的日志">apache</a> benchmark).在APACHE的bin目录下。</p>
<p>格式： ./<a href="http://ourapache.com/archives/tag/ab" class="st_tag internal_tag" rel="tag" title="标签 ab 下的日志">ab</a> [options] [http://]hostname[:port]/path<br />
参数：<br />
    -n requests     Number of requests to perform<br />
    <span style="color: #ff0000;">//在测试会话中所执行的请求个数。默认时，仅执行一个请求</span><br />
    -c concurrency Number of multiple requests to make<br />
    <span style="color: #ff0000;">//一次产生的请求个数。默认是一次一个。 </span><br />
    -t timelimit    Seconds to max. wait for responses<br />
    <span style="color: #ff0000;">//测试所进行的最大秒数。其内部隐含值是-n 50000。它可以使对服务器的测试限制在一个固定的总时间以内。默认时，没有时间限制。<br />
</span>    -p postfile     File containing data to POST<br />
    <span style="color: #ff0000;">//包含了需要POST的数据的文件. </span><br />
    -T content-type Content-type header for POSTing<br />
    <span style="color: #ff0000;">//POST数据所使用的Content-type头信息。</span><br />
    -v verbosity    How much troubleshooting info to print<br />
    <span style="color: #ff0000;">//设置显示信息的详细程度 &#8211; 4或更大值会显示头信息， 3或更大值可以显示响应代码(404, 200等), 2或更大值可以显示警告和其他信息。 -V 显示版本号并退出。<br />
</span>    -w              Print out results in HTML tables<br />
   <span style="color: #ff0000;"> //以HTML表的格式输出结果。默认时，它是白色背景的两列宽度的一张表。<br />
</span>    -i              Use HEAD instead of GET<br />
  <span style="color: #ff0000;"> // 执行HEAD请求，而不是GET。</span><br />
    -x attributes   String to insert as table attributes<br />
    //<br />
    -y attributes   String to insert as tr attributes<br />
    //<br />
    -z attributes   String to insert as td or th attributes<br />
    //<br />
    -C attribute    Add cookie, eg. &#8216;Apache=1234. (repeatable)<br />
    //<span style="color: #ff0000;">-C cookie-name=value 对请求附加一个Cookie:行。 其典型形式是name=value的一个参数对。此参数可以重复。</span><br />
    -H attribute    Add Arbitrary header line, eg. &#8216;Accept-Encoding: gzip&#8217;<br />
                    Inserted after all normal header lines. (repeatable)<br />
    -A attribute    Add Basic WWW Authentication, the attributes<br />
                    are a colon separated username and password.<br />
    -P attribute    Add Basic Proxy Authentication, the attributes<br />
                    are a colon separated username and password.<br />
    //<span style="color: #ff0000;">-P proxy-auth-username:password 对一个中转代理提供BASIC认证信任。用户名和密码由一个:隔开，并以base64编码形式发送。无论服务器是否需要(即, 是否发送了401认证需求代码)，此字符串都会被发送。</span><br />
    -X proxy:port   Proxyserver and port number to use<br />
    -V              Print version number and exit<br />
    -k              Use HTTP KeepAlive feature<br />
    -d              Do not show percentiles served table.<br />
    -S              Do not show confidence estimators and warnings.<br />
    -g filename     Output collected data to gnuplot format file.<br />
    -e filename     Output CSV file with percentages served<br />
    -h              Display usage information (this message)<br />
    //-attributes 设置 属性的字符串. 缺陷程序中有各种静态声明的固定长度的缓冲区。另外，对命令行参数、服务器的响应头和其他外部输入的解析也很简单，这可能会有不良后果。它没有完整地实现 HTTP/1.x; 仅接受某些&#8217;预想&#8217;的响应格式。 strstr(3)的频繁使用可能会带来性能问题，即, 你可能是在测试ab而不是服务器的性能。</p>
<p>参数很多,一般我们用 -c 和 -n 参数就可以了. 例如:</p>
<p>./ab -c 1000 -n 1000 <a href="http://127.0.0.1/index.php"><span style="color: #0000ff;">http://127.0.0.1/index.php</span></a></p>
<p>这个表示同时处理1000个请求并运行1000次index.php文件.<br />
#/usr/local/xiaobai/apache2054/bin/ab -c 1000 -n 1000 <a href="http://127.0.0.1/index.html.zh-cn.gb2312"><span style="color: #0000ff;">http://127.0.0.1/index.html.zh-cn.gb2312</span></a><br />
This is ApacheBench, Version 2.0.41-dev &lt;$Revision: 1.121.2.12 $&gt; apache-2.0<br />
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, <a href="http://www.zeustech.net/"><span style="color: #0000ff;">http://www.zeustech.net/</span></a><br />
Copyright (c) 1998-2002 The Apache Software Foundation, <a href="http://www.apache.org/"><span style="color: #0000ff;">http://www.apache.org/</span></a></p>
<p>Benchmarking 127.0.0.1 (be patient)<br />
Completed 100 requests<br />
Completed 200 requests<br />
Completed 300 requests<br />
Completed 400 requests<br />
Completed 500 requests<br />
Completed 600 requests<br />
Completed 700 requests<br />
Completed 800 requests<br />
Completed 900 requests<br />
Finished 1000 requests<br />
Server Software:        Apache/2.0.54<br />
<span style="color: #ff0000;">//平台apache 版本2.0.54<br />
</span>Server Hostname:        127.0.0.1<br />
<span style="color: #ff0000;">//服务器主机名<br />
</span>Server Port:            80<br />
<span style="color: #ff0000;">//服务器端口</span></p>
<p>Document Path:          /index.html.zh-cn.gb2312<br />
<span style="color: #ff0000;">//测试的页面文档</span><br />
Document Length:        1018 bytes<br />
<span style="color: #ff0000;">//文档大小</span></p>
<p>Concurrency Level:      1000<br />
<span style="color: #ff0000;">//并发数<br />
</span>Time taken for tests:   8.188731 seconds<br />
<span style="color: #ff0000;">//整个测试持续的时间</span><br />
Complete requests:      1000<br />
<span style="color: #ff0000;">//完成的请求数量</span><br />
Failed requests:        0<br />
<span style="color: #ff0000;">//失败的请求数量</span><br />
Write errors:           0</p>
<p>Total transferred:      1361581 bytes<br />
<span style="color: #ff0000;">//整个场景中的网络传输量</span><br />
HTML transferred:       1055666 bytes<br />
<span style="color: #ff0000;">//整个场景中的HTML内容传输量<br />
</span>Requests per second:    122.12 [#/sec] (mean)<br />
<span style="color: #ff0000;">//<span style="color: red;">大家最关心的指标之一，相当于</span><span style="color: red;"> LR </span><span style="color: red;">中的</span><span style="color: red;"> </span><strong><span style="color: red;">每秒事务数</span></strong><span style="color: red;"> </span><span style="color: red;">，后面括号中的</span><span style="color: red;"> mean </span><span style="color: red;">表示这是一个平均值</span></span><br />
Time per request:       8188.731 [ms] (mean)<br />
<span style="color: #ff0000;">//<span style="color: red;">大家最关心的指标之二，相当于</span><span style="color: red;"> LR </span><span style="color: red;">中的</span><span style="color: red;"> </span><strong><span style="color: red;">平均事务响应时间</span></strong><span style="color: red;"> </span><span style="color: red;">，后面括号中的</span><span style="color: red;"> mean </span><span style="color: red;">表示这是一个平均值</span></span><br />
Time per request:       8.189 [ms] (mean, across all concurrent requests)<br />
<span style="color: #ff0000;">//每个请求实际运行时间的平均值</span><br />
Transfer rate:          162.30 [Kbytes/sec] received<br />
<span style="color: #ff0000;">//<span style="color: red;">平均每秒网络上的流量，可以帮助排除是否存在网络流量过大导致响应时间延长的问题</span></span></p>
<p>Connection Times (ms)<br />
              min mean[+/-sd] median   max<br />
Connect:        4 646 1078.7     89    3291<br />
Processing:   165 992 493.1    938    4712<br />
Waiting:      118 934 480.6    882    4554<br />
Total:        813 1638 1338.9   1093    7785<br />
<span style="color: #ff0000;">//<span style="color: red;">网络上消耗的时间的分解，各项数据的具体算法还不是很清楚</span></span></p>
<p>Percentage of the requests served within a certain time (ms)<br />
50%   1093<br />
66%   1247<br />
75%   1373<br />
80%   1493<br />
90%   4061<br />
95%   4398<br />
98%   5608<br />
99%   7368<br />
100%   7785 (longest request)</p>
<p><span style="color: #ff0000;">//整个场景中所有请求的响应情况。在场景中每个请求都有一个响应时间，其中50％的用户响应时间小于1093 毫秒，60％ 的用户响应时间小于1247 毫秒，最大的响应时间小于7785 毫秒</span></p>
<p><span style="color: #ff0000;">      由于对于并发请求，cpu实际上并不是同时处理的，而是按照每个请求获得的时间片逐个轮转处理的，所以基本上第一个Time per request时间约等于第二个Time per request时间乘以并发请求数</span></p>
<h3  class="related_post_title">相关文章</h3><ul class="related_post"><li>2008年12月29号 -- <a href="http://ourapache.com/archives/17" title="使用apachebench进行post压力测试">使用apachebench进行post压力测试</a></li></ul>
	标签：<a href="http://ourapache.com/archives/tag/ab" title="ab" rel="tag">ab</a>, <a href="http://ourapache.com/archives/category/primary" title="Apache初级应用" rel="tag">Apache初级应用</a>, <a href="http://ourapache.com/archives/tag/%e5%8e%8b%e5%8a%9b" title="压力" rel="tag">压力</a><br />
]]></content:encoded>
			<wfw:commentRss>http://ourapache.com/archives/168/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache 设置web 缓存</title>
		<link>http://ourapache.com/archives/165</link>
		<comments>http://ourapache.com/archives/165#comments</comments>
		<pubDate>Wed, 25 Feb 2009 10:09:23 +0000</pubDate>
		<dc:creator>OurApache</dc:creator>
				<category><![CDATA[Apache初级应用]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[缓存]]></category>

		<guid isPermaLink="false">http://www.ourapache.com/?p=165</guid>
		<description><![CDATA[默认情况下，apache安装完以后，是不允许被cache的。如果外接了cache或squid服务器要求进行web加速的话，就需要在htttpd.conf里进行设置，当然前提是在安装apache的时候要激活mod_cache的模块。 ]]></description>
			<content:encoded><![CDATA[<p>默认情况下，apache安装完以后，是不允许被cache的。如果外接了cache或squid服务器要求进行web加速的话，就需要在htttpd.conf里进行设置，当然前提是在安装apache的时候要激活mod_cache的模块。</p>
<p>以下简单介绍一下安装与配置的步骤：</p>
<p>1. apache版本：httpd-2.0.49.tar.gz</p>
<p>2. 安装httpd-2.0.49.tar.gz:<br />
# tar –zxvf httpd-2.0.49.tar.gz<br />
# cd httpd-2.0.49<br />
#./configure &#8211;enable-<a href="http://ourapache.com/archives/tag/cache" class="st_tag internal_tag" rel="tag" title="标签 cache 下的日志">cache</a> &#8211;enable-disk-<a href="http://ourapache.com/archives/tag/cache" class="st_tag internal_tag" rel="tag" title="标签 cache 下的日志">cache</a> &#8211;enable-mem-<a href="http://ourapache.com/archives/tag/cache" class="st_tag internal_tag" rel="tag" title="标签 cache 下的日志">cache</a><br />
#mke<br />
#make install</p>
<p>3. 检验是否安装了cache模块<br />
/usr/local/<a href="http://ourapache.com/archives/tag/apache" class="st_tag internal_tag" rel="tag" title="标签 apache 下的日志">apache</a>2/bin/apachectl –l<br />
如果有mod_cache.c<br />
   mod_disk_cache.c<br />
   mod_mem_cache.c<br />
这3个模块，说明该apache可以支持cache了</p>
<p>4．更改httpd.conf的设置<br />
vi /usr/local/apache2/conf/httpd.conf<br />
在末尾添加上：<br />
&lt;IfModule mod_cache.c&gt;</p>
<p>CacheForceCompletion 100<br />
   CacheDefaultExpire 3600<br />
   CacheMaxExpire 86400<br />
   CacheLastModifiedFactor 0.1<br />
&lt;/IfModule&gt;</p>
<p>5.设置虚拟目录<br />
然后保存退出。启动apache</p>
<p>6．参数的解释：<br />
mod_cache：<br />
CacheEnable: 启动 mod_cache，其后接两个参数。第一个参数指定快取的种类，应设为 mem (记忆体快取) 或 disk (磁碟快取) 之其一；第二个参数指定使用快取的 URI <a href="http://ourapache.com/archives/tag/%e8%b7%af%e5%be%84" class="st_tag internal_tag" rel="tag" title="标签 路径 下的日志">路径</a>，如果对整个网站 (或虚拟主机) 进行快取，简单指定为根目录(/) 即可。<br />
CacheForceCompletion: 这个值指定当 HTTP request 被取消时，内容的产生动作要完成的百分比；预设是 60(%)。<br />
CacheDefaultExpire: 指定快取的预设过期秒数；预设值是一小时 (3600)。<br />
CacheMaxExpire: 指定快取最大的过期秒数；预设值是一天 (86400)。<br />
CacheLastModifiedFactor: 用来从回应里 Last Modified 资讯算出 expire date。<br />
计算方式是：<br />
expire period (过期时距) = 最后更新后至今的时间间距 * CacheLastModifiedFactor<br />
而<br />
expire date = 目前时间 + expire period<br />
不过无论如何，过期时间不能超过 CacheMaxExpire 的设定值。</p>
<p>现在。如果用squid对该服务器进行反向代理的话，就可以通过cache 实现web的加速了</p>
<h3  class="related_post_title">相关文章</h3><ul class="related_post"><li>2009年02月25号 -- <a href="http://ourapache.com/archives/178" title="Apache缓存系统">Apache缓存系统</a></li><li>2009年09月6号 -- <a href="http://ourapache.com/archives/303" title="基于资源的HTTP Cache的实现介绍">基于资源的HTTP Cache的实现介绍</a></li><li>2009年02月27号 -- <a href="http://ourapache.com/archives/209" title="面向站长和网站管理员的Web缓存加速指南">面向站长和网站管理员的Web缓存加速指南</a></li><li>2009年02月27号 -- <a href="http://ourapache.com/archives/187" title="header中的Cache-control参数说明">header中的Cache-control参数说明</a></li><li>2009年02月7号 -- <a href="http://ourapache.com/archives/89" title="Apache PHP利用HTTP缓存协议原理解析及应用">Apache PHP利用HTTP缓存协议原理解析及应用</a></li></ul>
	标签：<a href="http://ourapache.com/archives/category/primary" title="Apache初级应用" rel="tag">Apache初级应用</a>, <a href="http://ourapache.com/archives/tag/cache" title="cache" rel="tag">cache</a>, <a href="http://ourapache.com/archives/tag/%e7%bc%93%e5%ad%98" title="缓存" rel="tag">缓存</a><br />
]]></content:encoded>
			<wfw:commentRss>http://ourapache.com/archives/165/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>在Windows上手动配置Apache下面的虚拟主机站点</title>
		<link>http://ourapache.com/archives/161</link>
		<comments>http://ourapache.com/archives/161#comments</comments>
		<pubDate>Sat, 21 Feb 2009 16:57:53 +0000</pubDate>
		<dc:creator>OurApache</dc:creator>
				<category><![CDATA[Apache初级应用]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[虚拟主机]]></category>

		<guid isPermaLink="false">http://www.ourapache.com/?p=161</guid>
		<description><![CDATA[说到虚拟主机，不是IT圈里面的人可能很少知道，而说到网站空间、ASP空间或PHP空间什么的很多人就知道了，虚拟主机就是这些空间的一个统称。下面我就来说一下怎么在Apache下面来配置php的虚拟主机站点。]]></description>
			<content:encoded><![CDATA[<p>说到虚拟主机，不是IT圈里面的人可能很少知道，而说到网站空间、ASP空间或PHP空间什么的很多人就知道了，虚拟主机就是这些空间的一个统称。下面我就来说一下怎么在Apache下面来配置php的虚拟主机站点。</p>
<p>首先打开apache的配置文件httpd.conf，然后找到<strong>Virtual hosts</strong>这个地方，然后把此行下面的语句的注释去掉，如下：</p>
<p><strong>Include conf/extra/httpd-vhosts.conf</strong></p>
<p>保存，关闭httpd.conf</p>
<p>然后打开extra目录下面的httpd-vhosts.conf文件，在最下面的空白处添加</p>
<p>&lt;VirtualHost *:80&gt;<br />
ServerName localhost<br />
&lt;/VirtualHost&gt;</p>
<p>这句是为了保留默认的localhost站点，然后在下面继续添加</p>
<p>&lt;VirtualHost *:80&gt;<br />
ServerAdmin webmaster@dummy-host.php.com<br />
DocumentRoot “/www/docs/dummy-host.php.com”<br />
ServerName dummy-host.php.com<br />
ServerAlias www.dummy-host.php.com<br />
ErrorLog “logs/dummy-host.php.com-error_<a href="http://ourapache.com/archives/tag/log" class="st_tag internal_tag" rel="tag" title="标签 log 下的日志">log</a>”<br />
CustomLog “logs/dummy-host.php.com-access_log common”<br />
&lt;/VirtualHost&gt;</p>
<p><strong>上面的DocumentRoot和ServerName是必填项目</strong>，分别写上你的站点目录和你的域名，其他的可以选填，对于服务器上的站点的话，建议都填写完整。我在我本地机器的配置如下：</p>
<p><strong>&lt;VirtualHost *:80&gt;<br />
ServerAdmin yoyo@fesite.com</strong></p>
<p><strong>DocumentRoot “E:/web/ipuu”<br />
ServerName www.ipuu.cn<br />
&lt;/VirtualHost&gt;</strong></p>
<p>这样一个虚拟主机站点就配置好了，保存后重启apache，然后在浏览器地址栏里输入www.ipuu.cn就可以访问了，不过还有一个前提就是保证www.ipuu.cn的A记录指向到你的这台机器的IP上。</p>
<p>这个地方可以通过本地机器的hosts文件来解析域名指向到自己要指向的域名，方法是：打开C:\<a href="http://ourapache.com/archives/tag/windows" class="st_tag internal_tag" rel="tag" title="标签 windows 下的日志">WINDOWS</a>\system32\drivers\etc目录，然后用文本编辑器打开hosts文件，在下面空白处添加一行解析规则，这里还是以www.ipuu.cn为例，如下：</p>
<p><strong>127.0.0.1   www.ipuu.cn</strong></p>
<p>保存，退出，然后重新启动浏览器，在地址栏中输入www.ipuu.cn，这个域名就通过本机的hosts文件解析到本地的127.0.0.1这个ip上了，以此类推。<strong>此方法的优先权大于我们平时用到的DNS服务器的解析优先权。</strong></p>
<h3  class="related_post_title">相关文章</h3><ul class="related_post"><li>2009年02月25号 -- <a href="http://ourapache.com/archives/170" title="Apache 两种虚拟主机方式的区别">Apache 两种虚拟主机方式的区别</a></li><li>2009年02月18号 -- <a href="http://ourapache.com/archives/146" title="apache和tomcat集成的总结">apache和tomcat集成的总结</a></li><li>2009年02月7号 -- <a href="http://ourapache.com/archives/92" title="在Apache下限制每个虚拟主机的并发数">在Apache下限制每个虚拟主机的并发数</a></li><li>2008年12月27号 -- <a href="http://ourapache.com/archives/9" title="apache禁止使用IP访问的实现方法">apache禁止使用IP访问的实现方法</a></li></ul>
	标签：<a href="http://ourapache.com/archives/category/primary" title="Apache初级应用" rel="tag">Apache初级应用</a>, <a href="http://ourapache.com/archives/tag/windows" title="windows" rel="tag">windows</a>, <a href="http://ourapache.com/archives/tag/%e8%99%9a%e6%8b%9f%e4%b8%bb%e6%9c%ba" title="虚拟主机" rel="tag">虚拟主机</a><br />
]]></content:encoded>
			<wfw:commentRss>http://ourapache.com/archives/161/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>apache和tomcat集成的总结</title>
		<link>http://ourapache.com/archives/146</link>
		<comments>http://ourapache.com/archives/146#comments</comments>
		<pubDate>Wed, 18 Feb 2009 04:34:12 +0000</pubDate>
		<dc:creator>OurApache</dc:creator>
				<category><![CDATA[Apache初级应用]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[tomcat]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.ourapache.com/?p=146</guid>
		<description><![CDATA[Windows平台下的apache和tomcat集成的总结。]]></description>
			<content:encoded><![CDATA[<p>第一步：取得软件<br />
获取要用到的软件如下：<br />
Jdk1.6版本：http://java.sun.com站点下载<br />
<a href="http://ourapache.com/archives/tag/apache" class="st_tag internal_tag" rel="tag" title="标签 apache 下的日志">Apache</a>2.2.4版本：http://www.<a href="http://ourapache.com/archives/tag/apache" class="st_tag internal_tag" rel="tag" title="标签 apache 下的日志">apache</a>.org站点下载该软件<br />
<a href="http://ourapache.com/archives/tag/tomcat" class="st_tag internal_tag" rel="tag" title="标签 tomcat 下的日志">Tomcat</a>6.0版本：http://www.apache.org站点下载该软件<br />
mod_jk-apache-2.2.4.so注意这个文件一定要跟Apache版本的一致:这个文件可以在http://www.apache.org站点找到</p>
<p>第二步：安装软件<br />
1、 先安装jdk<br />
安装的过程很简单，在这里就不一一列出来了，就一路的默认安装下去，也可以改变你的安装路径，如果不清楚的在网上找找看。<br />
安装jdk完成后设置环境变量：<br />
  选择我的电脑右键-&gt;属性-&gt;选择高级选项卡-&gt;环境变量&#8212;这时将弹出设置环境变量对话框，在系统环境变量下点击《新建》按钮，变量名输入：java_home变量值输入：D:\Java\jdk1.6.0(注意这里是我本机上安装jdk的路径，可以修改成你本机上的jdk的路径)，点击《确定》，然后在已有的系统环境变量中找到名为path的环境变量名，选种该变量名，点击《编辑》按钮,在变量值中的前面加入 .;D:\Java\jdk1.6.0\bin;(按安装的路径而定)，OK! Jdk安装和配置就搞定了。<br />
测试jdk是否安装和配置成功，打开cmd输入java回车如果如下图所示说明jdk安装成功：</p>
<p><img class="alignnone size-full wp-image-148" title="cmd-apache-tomcat" src="http://www.ourapache.com/wp-content/uploads/2009/02/cmd-apache-tomcat.jpg" alt="cmd-apache-tomcat" width="547" height="419" /></p>
<p>2、 安装tomcat<br />
安装过程也是很简单的，在这里也不一一列出来了，就一路的默认安装下去，也可以改变你的安装路径，最好把安装的目录改为tomcat6.0,如果不清楚的在网上找找看。<br />
安装完成后启动tomcat服务器，打开IE输入http://localhost:8080回车，如果看到一个小老虎就说明tomcat已经安装成功！</p>
<p>3、 安装apache<br />
(1)、运行下载好的“apache_2.2.4-win32-x86-no_ssl.msi”，出现如下界</p>
<p>出现Apache HTTP Server 2.2.4的安装向导界面，点“Next”继续<br />
(2)、确认同意软件安装使用许可条例，选择“I accept the terms in the license agreement”，点“Next”继续<br />
(3)、将Apache安装到Windows上的使用须知，请阅读完毕后，按“Next”继续<br />
(4)、设置系统信息，在Network Domain下填入您的域名（比如：liubaoshan.com）如果是在本机上使用的输入localhost，在Server Name下填入您的服务器名称（比如：www.liubaoshan.com，也就是主机名加上域名）如果是在本机上使用的输入localhost，在Administrator&#8217;s Email Address下填入系统管理员的联系电子邮件地址（比如：liubaoshan_898@163.com），其中联系电子邮件地址会在当系统故障时提供给访问者，三条信息均可任意填写，无效的也行。下面有两个选择，图片上选择的是为系统所有用户安装，使用默认的80<a href="http://ourapache.com/archives/tag/%e7%ab%af%e5%8f%a3" class="st_tag internal_tag" rel="tag" title="标签 端口 下的日志">端口</a>，并作为系统服务自动启动；另外一个是仅为当前用户安装，使用端口8080，手动启动。一般选择前一个。按“Next”继续。<br />
(5)、选择安装类型，Typical为默认安装，Custom为用户自定义安装，我们这里选择Typical。按“Next”继续<br />
(6)、确认安装选项无误，如果您认为要再检查一遍，可以点“Back”一步步返回检查。点“Install”开始按前面设定的安装选项安装。<br />
(7)、正在安装界面，请耐心等待，直到安装完成出现《finish》按钮。<br />
(8)、安装向导成功完成，这时状态栏的右下角应该出现了一个绿色的图标，表示Apache服务已经开始运行，按“Finish”结束Apache的软件安装。<br />
(9)、我们来熟悉一下这个图标，很方便的，在图标上单击左键，出现有“Start（启动）”、“Stop（停止）”、“Restart（重启动）”三个选项，可以很方便的对安装的Apache服务器进行上述操作。<br />
(10)、好了现在我们来测试一下按默认配置运行的网站界面，在IE地址栏打“http://localhost”，点“转到”，就可以看到apache默认的页面，在页面上显示It works！表示Apache服务器已安装成功。</p>
<p>4、<br />
第三步：配置tomcat和apache</p>
<p>1、 配置tomcat<br />
打开tomcat安装目录D:\Tomcat 6.0\conf\workers.properties文件(如果没有该文件就新建一个)添加以下配置：<br />
workers.tomcat_home=d:\tomcat6.0 #让mod_jk模块知道Tomcat的位置<br />
workers.java_home=D:\Java\jre1.6.0 #让mod_jk模块知道jre的位置<br />
ps=\<br />
worker.list=ajp13 #模块版本<br />
worker.ajp13.port=8009 #工作端口,若没占用则不用修改<br />
worker.ajp13.host=localhost #本机,若上面的Apache主机不为localhost,作相应修改<br />
worker.ajp13.type=ajp13 #类型<br />
worker.ajp13.lbfactor=1 #代理数,不用修改<br />
打开tomcat安装目录D:\Tomcat 6.0\conf\server.xml添加以下配置：<br />
&lt;Context path=”/web” docBase=”D:/www” debug=”0&#8243; reloadable=”true” &gt; &lt;/Context&gt;<br />
注意是在&lt;/Host&gt;标签前面添加，该配置说明就是配置一个虚拟路径(/web),真实路径为D:/www，www目录就是web项目的根目录,可以任意的修改。<br />
2、 配置Apache<br />
把上面第一步下载得到的mod_jk-apache-2.2.4.so文件拷贝到apache安装目录     d: \Apache2.2\modules的目录下。<br />
打开apache安装目录d: \Apache2.2\conf\httpd.conf,打开httpd.conf文件，在最后面添加以下配置：</p>
<p>#以下是集成tomcat添加的<br />
# Using mod_jk2.dll to redirect dynamic calls to Tomcat<br />
LoadModule jk_module modules/mod_jk-apache-2.2.4.so<br />
JkWorkersFile “d:/Tomcat6.0/conf/workers.properties”<br />
JkLogFile “d:/Tomcat6.0/logs/mod_jk2.<a href="http://ourapache.com/archives/tag/log" class="st_tag internal_tag" rel="tag" title="标签 log 下的日志">log</a>”<br />
JkLogLevel info<br />
JkMount /servlet/* ajp13<br />
JkMount /*.jsp ajp13</p>
<p>#以下是配置的虚拟目录，这个目录是和tomcat指同一个目录<br />
Alias /web “D:/www/”<br />
&lt;Directory “D:/www”&gt;<br />
Options Indexes MultiViews<br />
AddOutputFilter Includes html<br />
AllowOverride None<br />
Order allow,deny<br />
Allow from all<br />
&lt;/Directory&gt;<br />
3、 启动服务器<br />
首先启动tomcat服务器，后启动apache服务器，服务器启动成功后，打开IE输入网址:http://localhost/web/test.jsp和输入网址:http://localhost:8080/web/test.jsp显示的页面是相同的说明apache集成tomcat成功！(test.jsp是存放在D:/www目录下的)</p>
<p>4、 以下是一些关于apache服务器配置文件httpd.conf里的一些描述：<br />
1、如何设 置请求等待时间<br />
　　在httpd.conf里面设置：<br />
　　TimeOut n<br />
　　其中n为整数，单位是秒。<br />
　　设置这个TimeOut适用于三种情况：<br />
　　2、如何接收一个get请求的总时间<br />
　　接收一个post和put请求的TCP包之间的时间<br />
　　TCP包传输中的响应（ack）时间间隔<br />
　　3、如何使得apache监听在特定的端口<br />
　　修改httpd.conf里面关于Listen的选项，例如：<br />
　　Listen 8000<br />
　　是使apache监听在8000端口<br />
　　而如果要同时指定监听端口和监听地址，可以使用：<br />
　　Listen 192.170.2.1:80<br />
　　Listen 192.170.2.5:8000<br />
　　这样就使得apache同时监听在192.170.2.1的80端口和192.170.2.5的8000端口。<br />
　　当然也可以在httpd.conf里面设置：<br />
　　Port 80<br />
　　这样来实现类似的效果。<br />
　　4、如何设置apache的最大空闲进程数<br />
　　修改httpd.conf，在里面设置：<br />
　　MaxSpareServers n<br />
　　其中n是一个整数。这样当空闲进程超过n的时候，apache主进程会杀掉多余的空闲进程而保持空闲进程在n，节省了系统资源。如果在一个apache非常繁忙的站点调节这个参数才是必要的，但是在任何时候把这个参数调到很大都不是一个好主意。<br />
　　同时也可以设置：<br />
　　MinSpareServers n<br />
　　来限制最少空闲进程数目来加快反应速度。<br />
　　5、apache如何设置启动时的子服务进程个数<br />
　　在httpd.conf里面设置：<br />
　　StartServers 5<br />
　　这样启动apache后就有5个空闲子进程等待接受请求。<br />
　　也可以参考MinSpareServers和MaxSpareServers设置。<br />
6、如何在apache中设置每个连接的最大请求数<br />
　　在httpd.conf里面设置：<br />
　　MaxKeepAliveRequests 100<br />
　　这样就能保证在一个连接中，如果同时请求数达到100就不再响应这个连接的新请求，保证了系统资源不会被某个连接大量占用。但是在实际配置中要求尽量把这个数值调高来获得较高的系统性能。<br />
　　7、如何在apache中设置session的持续时间<br />
　　在apache1.2以上的版本中，可以在httpd.conf里面设置：<br />
　　KeepAlive on<br />
　　KeepAliveTimeout 15<br />
　　这样就能限制每个session的保持时间是15秒。session的使用可以使得很多请求都可以通过同一个tcp连接来发送，节约了网络资源和系统资源。<br />
　　8、如何使得apache对客户端进行域名验证<br />
　　可以在httpd.conf里面设置：<br />
　　HostnameLookups on|off|double<br />
　　如果是使用on，那么只有进行一次反查，如果用double，那么进行反查之后还要进行一次正向解析，只有两次的结果互相符合才行，而off就是不进行域名验证。<br />
　　如果为了安全，建议使用double；为了加快访问速度，建议使用off。<br />
　　9、如何使得apache只监听在特定的ip<br />
　　修改httpd.conf，在里面使用<br />
　　BindAddress 192.168.0.1<br />
　　这样就能使得apache只监听外界对192.168.0.1的http请求。如果使用：<br />
　　BindAddress *<br />
　　就表明apache监听所有网络接口上的http请求。<br />
　　当然用防火墙也可以实现。<br />
10、apache中如何限制http请求的消息主体的大小<br />
　　在httpd.conf里面设置：<br />
　　LimitRequestBody n<br />
　　n是整数，单位是byte。<br />
　　cgi脚本一般把表单里面内容作为消息的主体提交给服务器处理，所以现在消息主体的大小在使用cgi的时候很有用。比如使用cgi来上传文件，如果有设置：<br />
　　LimitRequestBody 102400<br />
　　那么上传文件超过100k的时候就会报错。<br />
　　11、如何修改apache的文档根目录<br />
　　修改httpd.conf里面的DocumentRoot选项到指定的目录，比如：<br />
　　DocumentRoot /www/htdocs<br />
　　这样http://localhost/index.html就是对应/www/htdocs/index.html<br />
　　12、如何修改apache的最大连接数<br />
　　在httpd.conf中设置：<br />
　　MaxClients n<br />
　　n是整数，表示最大连接数，取值范围在1和256之间，如果要让apache支持更多的连接数，那么需要修改源码中的httpd.h文件，把定义的HARD_SERVER_LIMIT值改大然后再编译。</p>
<p>　　13、如何使每个用户有独立的cgi-bin目录<br />
　　有两种可选择的方法：<br />
　　(1)在Apache配置文件里面关于public_html的设置后面加入下面的属性：<br />
　　ScriptAliasMatch ^/~([^/]*)/cgi-bin/(.*) /home/$1/cgi-bin/$2<br />
　　(2)在Apache配置文件里面关于public_html的设置里面加入下面的属性：<br />
　　&lt;Directory /home/*/public_html/cgi-bin&gt;<br />
　　　　Options ExecCGI<br />
　　　　SetHandler cgi-script<br />
　　&lt;/Directory&gt;<br />
14、如何调整Apache的最大进程数<br />
Apache允许为请求开的最大进程数是256,MaxClients的限制是256.如果用户多了，用户就只能看到Waiting for reply&#8230;.然后等到下一个可用进程的出现。这个最大数，是Apache的程序决定的&#8211;它的NT版可以有1024，但Unix版只有256，你可以在src/include/httpd.h中看到：<br />
#ifndef HARD_SERVER_LIMIT<br />
#ifdef WIN32<br />
#define HARD_SERVER_LIMIT 1024<br />
#else<br />
#define HARD_SERVER_LIMIT 256<br />
#endif<br />
#endif<br />
你可以把它调到1024，然后再编译你的系统。<br />
　　15、如何屏蔽来自某个Internet地址的用户访问Apache服务器<br />
　　可以使用deny和allow来限制访问，比如要禁止202.202.202.xx网络的用户访问：<br />
　　&lt;Directory /www/htdocs&gt;<br />
　　order deny,allow<br />
　　deny from 202.202.202.0/24<br />
　　&lt;/Directory&gt;<br />
　　16、如何在日志里面记录apache浏览器和引用信息<br />
　　你需要把mod_log_config编译到你的Apache服务器中，然后使用下面类似的配置：<br />
　　CustomLog logs/access_log “%h %l %u %t “%r” %s %b “%{Referer}i” “%{User-Agent}i”"<br />
　　17、如何修改Apache返回的头部信息<br />
　　问题分析：当客户端连接到Apache服务器的时候，Apache一般会返回服务器版本、非缺省模块等信息，例如：<br />
　　Server: Apache/1.3.26 (Unix) mod_perl/1.26<br />
　　解决：<br />
　　你可以在Apache的配置文件里面作如下设置让它返回的关于服务器的信息减少到最少：<br />
　　ServerTokens Prod<br />
　　注意：<br />
　　这样设置以后Apache还会返回一定的服务器信息，比如：<br />
　　Server: Apache<br />
　　但是这个不会对服务器安全产生太多的影响，因为很多扫描软件是扫描的时候是不顾你服务器返回的头部信息的。你如果想把服务器返回的相关信息变成：<br />
　　Server: It iS a nOnE-aPaCHe Server<br />
　　那么你就要去修改源码了。</p>
<h3  class="related_post_title">相关文章</h3><ul class="related_post"><li>2009年02月22号 -- <a href="http://ourapache.com/archives/161" title="在Windows上手动配置Apache下面的虚拟主机站点">在Windows上手动配置Apache下面的虚拟主机站点</a></li></ul>
	标签：<a href="http://ourapache.com/archives/tag/apache" title="apache" rel="tag">apache</a>, <a href="http://ourapache.com/archives/category/primary" title="Apache初级应用" rel="tag">Apache初级应用</a>, <a href="http://ourapache.com/archives/tag/tomcat" title="tomcat" rel="tag">tomcat</a>, <a href="http://ourapache.com/archives/tag/windows" title="windows" rel="tag">windows</a><br />
]]></content:encoded>
			<wfw:commentRss>http://ourapache.com/archives/146/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache、resin、rewrite泛域名、多域名设置</title>
		<link>http://ourapache.com/archives/140</link>
		<comments>http://ourapache.com/archives/140#comments</comments>
		<pubDate>Mon, 16 Feb 2009 02:44:36 +0000</pubDate>
		<dc:creator>OurApache</dc:creator>
				<category><![CDATA[Apache初级应用]]></category>
		<category><![CDATA[resin]]></category>
		<category><![CDATA[rewrite]]></category>
		<category><![CDATA[域名]]></category>

		<guid isPermaLink="false">http://www.ourapache.com/?p=140</guid>
		<description><![CDATA[Apache、resin、rewrite泛域名、多域名设置]]></description>
			<content:encoded><![CDATA[<div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; width: 98%; padding-top: 4px; background-color: #eeeeee; border: #cccccc 1px solid;"><span style="color: #000000;"></p>
<ol>
<li><span><span>&lt;</span><span>VirtualHost</span><span>ip:80</span><span>&gt;</span><span> </span></span></li>
<li><span>rewriteengine on </span></li>
<li><span>rewritecond %{HTTP_HOST} [^.]+\.<a href="http://ourapache.com/archives/tag/%e5%9f%9f%e5%90%8d" class="st_tag internal_tag" rel="tag" title="标签 域名 下的日志">域名</a>\.com$ </span></li>
<li><span>rewriterule ^(.+) %{HTTP_HOST}$1 [C] </span></li>
<li><span>rewriterule ([^.]+)\.域名\.com(.*) /$1$2 </span></li>
<li><span>其他配置文件 </span></li>
<li><span>&lt;/</span><span>VirtualHost</span><span>&gt;</span></li>
</ol>
<p> </p>
<p></span></div>
<p><a href="javascript:void(0);" target="_blank"><span style="text-decoration: underline;"><strong>Apache</strong></span></a>:</p>
<div>
<div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; width: 98%; padding-top: 4px; background-color: #eeeeee; border: #cccccc 1px solid;"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /><span style="color: #000000;">&lt;</span><span style="color: #000000;">VirtualHost</span><span style="color: #000000;">*</span><span style="color: #000000;">:</span><span style="color: #000000;">80</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> DocumentRoot</span><span style="color: #000000;">/</span><span style="color: #000000;">usr</span><span style="color: #000000;">/</span><span style="color: #000000;">local</span><span style="color: #000000;">/</span><span style="color: #000000;">pengpeng</span><span style="color: #000000;">/</span><span style="color: #000000;">xspace</span><span style="color: #000000;">/</span><span style="color: #000000;"><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> ServerName x.</span><span style="color: #000000;">243</span><span style="color: #000000;">.com<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> ServerAlias </span><span style="color: #000000;">*</span><span style="color: #000000;">.x.</span><span style="color: #000000;">243</span><span style="color: #000000;">.com<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">VirtualHost</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #000000;">&lt;</span><span style="color: #000000;">VirtualHost</span><span style="color: #000000;">*</span><span style="color: #000000;">:</span><span style="color: #000000;">80</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> DocumentRoot</span><span style="color: #000000;">/</span><span style="color: #000000;">usr</span><span style="color: #000000;">/</span><span style="color: #000000;">local</span><span style="color: #000000;">/</span><span style="color: #000000;">pengpeng</span><span style="color: #000000;">/</span><span style="color: #000000;">xhome</span><span style="color: #000000;">/</span><span style="color: #000000;"><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> ServerName home.</span><span style="color: #000000;">243</span><span style="color: #000000;">.com<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> ServerAlias </span><span style="color: #000000;">*</span><span style="color: #000000;">.home.</span><span style="color: #000000;">243</span><span style="color: #000000;">.com<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">VirtualHost</span><span style="color: #000000;">&gt;</span></div>
</div>
<p><a href="http://ourapache.com/archives/tag/resin" class="st_tag internal_tag" rel="tag" title="标签 resin 下的日志">Resin</a>:</p>
<div>
<div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; width: 98%; padding-top: 4px; background-color: #eeeeee; border: #cccccc 1px solid;"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /><span style="color: #000000;"> </span><span style="color: #000000;">&lt;</span><span style="color: #000000;">host id</span><span style="color: #000000;">=</span><span style="color: #000000;">“</span><span style="color: #000000;">home.243.com</span><span style="color: #000000;">“</span><span style="color: #000000;">root</span><span style="color: #000000;">-</span><span style="color: #000000;">directory</span><span style="color: #000000;">=</span><span style="color: #000000;">“</span><span style="color: #000000;">.</span><span style="color: #000000;">“</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> </span><span style="color: #000000;">&lt;</span><span style="color: #000000;">host</span><span style="color: #000000;">-</span><span style="color: #000000;">alias</span><span style="color: #000000;">-</span><span style="color: #000000;">regexp</span><span style="color: #000000;">&gt;^</span><span style="color: #000000;">([</span><span style="color: #000000;">^/</span><span style="color: #000000;">]</span><span style="color: #000000;">*</span><span style="color: #000000;">).home.</span><span style="color: #000000;">243</span><span style="color: #000000;">.com</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">host</span><span style="color: #000000;">-</span><span style="color: #000000;">alias</span><span style="color: #000000;">-</span><span style="color: #000000;">regexp</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> </span><span style="color: #000000;">&lt;</span><span style="color: #000000;">redeploy</span><span style="color: #000000;">-</span><span style="color: #000000;">mode</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">manual</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">redeploy</span><span style="color: #000000;">-</span><span style="color: #000000;">mode</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> </span><span style="color: #000000;">&lt;</span><span style="color: #000000;">web</span><span style="color: #000000;">-</span><span style="color: #000000;">app id</span><span style="color: #000000;">=</span><span style="color: #000000;">“</span><span style="color: #000000;">/</span><span style="color: #000000;">“</span><span style="color: #000000;">document</span><span style="color: #000000;">-</span><span style="color: #000000;">directory</span><span style="color: #000000;">=</span><span style="color: #000000;">“</span><span style="color: #000000;">/usr/local/pengpeng/xhome/</span><span style="color: #000000;">“</span><span style="color: #000000;">/&gt;</span><span style="color: #000000;"><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> </span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">host</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> </span><span style="color: #000000;">&lt;</span><span style="color: #000000;">host id</span><span style="color: #000000;">=</span><span style="color: #000000;">“</span><span style="color: #000000;">x.243.com</span><span style="color: #000000;">“</span><span style="color: #000000;">root</span><span style="color: #000000;">-</span><span style="color: #000000;">directory</span><span style="color: #000000;">=</span><span style="color: #000000;">“</span><span style="color: #000000;">.</span><span style="color: #000000;">“</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> </span><span style="color: #000000;">&lt;</span><span style="color: #000000;">host</span><span style="color: #000000;">-</span><span style="color: #000000;">alias</span><span style="color: #000000;">-</span><span style="color: #000000;">regexp</span><span style="color: #000000;">&gt;^</span><span style="color: #000000;">([</span><span style="color: #000000;">^/</span><span style="color: #000000;">]</span><span style="color: #000000;">*</span><span style="color: #000000;">).x.</span><span style="color: #000000;">243</span><span style="color: #000000;">.com</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">host</span><span style="color: #000000;">-</span><span style="color: #000000;">alias</span><span style="color: #000000;">-</span><span style="color: #000000;">regexp</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> </span><span style="color: #000000;">&lt;</span><span style="color: #000000;">redeploy</span><span style="color: #000000;">-</span><span style="color: #000000;">mode</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">manual</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">redeploy</span><span style="color: #000000;">-</span><span style="color: #000000;">mode</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> </span><span style="color: #000000;">&lt;</span><span style="color: #000000;">web</span><span style="color: #000000;">-</span><span style="color: #000000;">app id</span><span style="color: #000000;">=</span><span style="color: #000000;">“</span><span style="color: #000000;">/</span><span style="color: #000000;">“</span><span style="color: #000000;">document</span><span style="color: #000000;">-</span><span style="color: #000000;">directory</span><span style="color: #000000;">=</span><span style="color: #000000;">“</span><span style="color: #000000;">/usr/local/pengpeng/xspace/</span><span style="color: #000000;">“</span><span style="color: #000000;">/&gt;</span><span style="color: #000000;"><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> </span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">host</span><span style="color: #000000;">&gt;</span></div>
</div>
<p>多<a href="javascript:void(0);" target="_blank"><span style="text-decoration: underline;"><strong>域名</strong></span></a>：</p>
<p><a href="http://ourapache.com/archives/tag/apache" class="st_tag internal_tag" rel="tag" title="标签 apache 下的日志">apache</a>:</p>
<div>
<div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; width: 98%; padding-top: 4px; background-color: #eeeeee; border: #cccccc 1px solid;"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">VirtualHost</span><span style="color: #ff0000;">*:80</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> DocumentRoot /usr/local/pengpeng/channel/<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> ServerName blog.pengpeng.com<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> RewriteEngine On<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> # 来自”Host:”头的ServerName ，可能大小写混杂<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> RewriteMap lowercase int:tolower<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> # 检查hostname正确与否，之后才能使RewriteRule起作用<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> RewriteCond ${lowercase:%{HTTP_HOST}} ^blog.pengpeng.com(.*)$<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> RewriteCond %{REQUEST_URI} !^/(.+\.do)$<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> RewriteRule     ^/index.jsp$    /blog/index.jsp      [PT]<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">VirtualHost *:80</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">VirtualHost</span><span style="color: #ff0000;">*:80</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> DocumentRoot /usr/local/pengpeng/channel/<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> ServerName show.pengpeng.com<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> RewriteEngine On<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> # 来自”Host:”头的ServerName ，可能大小写混杂<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> RewriteMap lowercase int:tolower<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> # 检查hostname正确与否，之后才能使RewriteRule起作用<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> RewriteCond ${lowercase:%{HTTP_HOST}} ^show.pengpeng.com(.*)$<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> RewriteCond %{REQUEST_URI} !^/(.+\.do)$<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> RewriteRule     ^/index.jsp$    /show/index.jsp      [PT]<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">VirtualHost *:80</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">VirtualHost</span><span style="color: #ff0000;">*:80</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> DocumentRoot /usr/local/pengpeng/channel/<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> ServerName photo.pengpeng.com<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> RewriteEngine On<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> # 来自”Host:”头的ServerName ，可能大小写混杂<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> RewriteMap lowercase int:tolower<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> # 检查hostname正确与否，之后才能使RewriteRule起作用<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> RewriteCond ${lowercase:%{HTTP_HOST}} ^photo.pengpeng.com(.*)$<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> RewriteCond %{REQUEST_URI} !^/(.+\.do)$<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> RewriteRule     ^/index.jsp$    /photo/index.jsp      [PT]<br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">VirtualHost *:80</span><span style="color: #0000ff;">&gt;</span></div>
</div>
<p>Resin:</p>
<div>
<div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; width: 98%; padding-top: 4px; background-color: #eeeeee; border: #cccccc 1px solid;"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">host</span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">=”channel.pengpeng.com”</span><span style="color: #ff0000;">root-directory</span><span style="color: #0000ff;">=”.”</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">host-alias</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">blog.pengpeng.com</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">host-alias</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">host-alias</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">show.pengpeng.com</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">host-alias</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">host-alias</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">photo.pengpeng.com</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">host-alias</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">web-app</span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">=”/”</span><span style="color: #ff0000;">document-directory</span><span style="color: #0000ff;">=”/usr/local/pengpeng/channel/”</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" alt="" align="top" /> </span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">host</span><span style="color: #0000ff;">&gt;</span></div>
</div>
<h3  class="related_post_title">相关文章</h3><ul class="related_post"><li>2009年06月14号 -- <a href="http://ourapache.com/archives/255" title="常见的rewrite规则大全">常见的rewrite规则大全</a></li><li>2009年02月12号 -- <a href="http://ourapache.com/archives/136" title="让apache支持自定义404页面错误">让apache支持自定义404页面错误</a></li><li>2009年02月12号 -- <a href="http://ourapache.com/archives/134" title="泛域名与mod_rewrite">泛域名与mod_rewrite</a></li><li>2009年02月10号 -- <a href="http://ourapache.com/archives/114" title="apache + resin的多机部署方案实现方法">apache + resin的多机部署方案实现方法</a></li><li>2009年02月10号 -- <a href="http://ourapache.com/archives/106" title="Apache Rewrite 规则详解">Apache Rewrite 规则详解</a></li><li>2009年02月7号 -- <a href="http://ourapache.com/archives/97" title="使用apache下的301设置来做域名的更换转移">使用apache下的301设置来做域名的更换转移</a></li><li>2008年12月27号 -- <a href="http://ourapache.com/archives/13" title="单独编译apache的rewrite模块">单独编译apache的rewrite模块</a></li></ul>
	标签：<a href="http://ourapache.com/archives/category/primary" title="Apache初级应用" rel="tag">Apache初级应用</a>, <a href="http://ourapache.com/archives/tag/resin" title="resin" rel="tag">resin</a>, <a href="http://ourapache.com/archives/tag/rewrite" title="rewrite" rel="tag">rewrite</a>, <a href="http://ourapache.com/archives/tag/%e5%9f%9f%e5%90%8d" title="域名" rel="tag">域名</a><br />
]]></content:encoded>
			<wfw:commentRss>http://ourapache.com/archives/140/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>泛域名与mod_rewrite</title>
		<link>http://ourapache.com/archives/134</link>
		<comments>http://ourapache.com/archives/134#comments</comments>
		<pubDate>Thu, 12 Feb 2009 07:03:14 +0000</pubDate>
		<dc:creator>OurApache</dc:creator>
				<category><![CDATA[Apache初级应用]]></category>
		<category><![CDATA[mod_rewrite]]></category>
		<category><![CDATA[域名]]></category>

		<guid isPermaLink="false">http://www.ourapache.com/?p=134</guid>
		<description><![CDATA[目的：动态解析home.sst.cn的下级域名，username.home.sst.cn，实现基于虚拟域名（动态域名）的个人空间访问 。]]></description>
			<content:encoded><![CDATA[<p align="left"><strong>注：文档中的域名及地址为虚构</p>
<p>目的：</strong>动态解析home.sst.cn的下级域名，username.home.sst.cn，实现基于虚拟域名（动态域名）的个人空间访问 。</p>
<p align="left"><strong>实现步骤：</p>
<p>1.DNS的泛域名解析<br />
</strong></p>
<div class="code">nbsp;      IN      SOA     ns.sst.cn. zhao.sst.cn.  (<br />
                                20050817        ; Serial<br />
                                3600    ; Refresh<br />
                                900     ; Retry<br />
                                3600000 ; Expire<br />
                                3600 )  ; Minimum<br />
        IN      NS      ns.sst.cn.<br />
&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;<br />
home    IN      A       123.123.123.123<br />
<span style="background-color: #ffff00;">*.home  IN      A       123.123.123.123</span></div>
<p> 
</p>
<p align="left">
以上是在unix bind9下的设置，在windows server中的DNS设置与之同理，略。</p>
<p><strong>2. web服务的设置<br />
</strong> a) 如果是IIS，只需要在IIS中设置一个空的主机头，然后置一跳转文件，例：</p>
<p>[asp代码片断]  </p>
<div class="code">&lt;% dim temp1, temp2, temp3<br />
temp1 = Request.ServerVariables(“HTTP_HOST”)<br />
temp2 = Right(Request.ServerVariables(“HTTP_HOST”),12) &#8216;<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">其中</span><span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">12</span><span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">表示你的域名去掉前辍后剩下的字符数</span><span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">.<br />
temp3 = Replace(temp1,temp2,”")<br />
%&gt;<br />
&lt;%if temp3 &lt;&gt; “www” then<br />
Response.Redirect “<span style="color: #0000ff; font-family: 宋体;">http://home.sst.cn/index.asp?name</span>=” &amp; temp3 %&gt;<br />
&lt;%end if%&gt;</span></div>
<p>  b) 如果是Apache，则修改httpd.conf文件加入虚拟主机（如果需要同时供应多个web服务）<br />
 </p>
<div class="code">&lt;VirtualHost *:80&gt;<br />
        ServerAdmin zhao@home.sst.cn<br />
        DocumentRoot /somewhere/to/wwwhome<br />
        ServerName home.sst.cn<br />
        <span style="background-color: #ffff00;">ServerAlias *.home.sst.cn</span><br />
        ErrorLog logs/home.sst.cn/error_<a href="http://ourapache.com/archives/tag/log" class="st_tag internal_tag" rel="tag" title="标签 log 下的日志">log</a><br />
        CustomLog logs/home.sst.cn/access_log common<br />
&lt;/VirtualHost&gt;<br />
&lt;VirtualHost *:80&gt; <br />
        ServerName anotherweb.sst.cn <br />
        DocumentRoot /somewhere/to/anotherweb<br />
&lt;/VirtualHost&gt;</div>
<p><span style="text-decoration: underline;">为改变虚拟主机顺序，使提供泛域名的web服务为非中心主机(main host)，加入此句：<br />
ServerAlias *.home.sst.cn<br />
</span><br />
　　分析访问过程：<br />
<span style="color: #ff6699;"><span style="color: #0066cc;">　　　　用户输入[username].home.sst.cn<br />
　　　　　　　　　　　｜<br />
　　　　　　　　　　　｜<br />
　　　　　　　　　　　｜<br />
　　　　　　　　　　　｀－－＞apache分析主机头的值，不匹配任何一<br />
　　　　　　　　　　　　　　　个虚拟主机名，则交送中心主机的目录<br />
　　　　　　　　　　　　　　　　　　　　　　　　｜<br />
　　　　　　　　　　　　　　　　　　　　　　　　｜<br />
　　　　　　　　　　　　　　　　　　　　　　　　｜<br />
　　　　　　　　 接下来应该有两种方法处理：＜－－＇<br />
　　　　　　　　　　　　　　｜<br />
　　　　　　　　　　　　　　｜<br />
　　　　　　　　　　　　　　＾ <br />
　　　　　　　　　　　　＇　　｀<br />
　　　　　　　　　 　　／　　　　＼<br />
① 在home.sst.cn的根目录     　　　　② 用mod_rewrite重写<br />
设跳转文件，ASP代码举例：                URL指向[username]目录。<br />
　　　　　｜　　　　　　　　　　　　　　　　　｜<br />
　　　　　｜　　　　　　　　　　　　　　　　　｜<br />
　　　　　｜　　　　　　　　　　　　　　　　　｜<br />
<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma"><br />
<span style="color: #0066cc;">方法①纯代码方式，无用户目录。</span><br />
</span><font color="#ff6699"></font><font color="#0066cc"><br />
<span style="font-size: small; font-family: 宋体;">方法②用mod_rewrite重写URL，指向用户目录。<br />
</span></p>
<p></font></p>
<p></span><font color="#ff6699"> </p>
<p></font></span></p>
<p><span style="font-size: small; color: #404040; font-family: 宋体;">在blog的主目录下建立.htaccess文件，内容为:</span></p>
<p><span style="font-size: small; color: #404040; font-family: 宋体;">&lt;IfModule <a href="http://ourapache.com/archives/tag/mod_rewrite" class="st_tag internal_tag" rel="tag" title="标签 mod_rewrite 下的日志">mod_rewrite</a>.c&gt;<br />
RewriteEngine On<br />
#RewriteRule ^(.*)/home/(.*)$ $1.php?$2<br />
&lt;/IfModule&gt; </span></p>
<h3  class="related_post_title">相关文章</h3><ul class="related_post"><li>2009年08月13号 -- <a href="http://ourapache.com/archives/270" title="Apache配置之URL重写">Apache配置之URL重写</a></li><li>2009年06月14号 -- <a href="http://ourapache.com/archives/253" title="Apache自动添加地址末尾的斜线">Apache自动添加地址末尾的斜线</a></li><li>2009年02月16号 -- <a href="http://ourapache.com/archives/140" title="Apache、resin、rewrite泛域名、多域名设置">Apache、resin、rewrite泛域名、多域名设置</a></li><li>2009年02月7号 -- <a href="http://ourapache.com/archives/97" title="使用apache下的301设置来做域名的更换转移">使用apache下的301设置来做域名的更换转移</a></li></ul>
	标签：<a href="http://ourapache.com/archives/category/primary" title="Apache初级应用" rel="tag">Apache初级应用</a>, <a href="http://ourapache.com/archives/tag/mod_rewrite" title="mod_rewrite" rel="tag">mod_rewrite</a>, <a href="http://ourapache.com/archives/tag/%e5%9f%9f%e5%90%8d" title="域名" rel="tag">域名</a><br />
]]></content:encoded>
			<wfw:commentRss>http://ourapache.com/archives/134/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>实时跟踪log变化的工具Apachetop</title>
		<link>http://ourapache.com/archives/130</link>
		<comments>http://ourapache.com/archives/130#comments</comments>
		<pubDate>Wed, 11 Feb 2009 09:56:21 +0000</pubDate>
		<dc:creator>OurApache</dc:creator>
				<category><![CDATA[Apache初级应用]]></category>
		<category><![CDATA[apachetop]]></category>
		<category><![CDATA[log]]></category>

		<guid isPermaLink="false">http://www.ourapache.com/?p=130</guid>
		<description><![CDATA[作为一个网站管理员，我们经常会有需要知道当前什么人正在访问我们的网站，谁正在频繁的抓取我们网站的内容，什么搜索引擎正在抓取我们网站？面对这些问题，我们虽然可以去查看log日志文件，但是却不能让我们实时统计，不能给我们直观的统计数据。现在好了，有了apachetop这个工具就可以实时的跟踪log的变化，对网站管理帮助很大。Apachetop是一个apache的log实时监测程序，能查看访问者正在查看哪些文件，和访问者IP等信息。]]></description>
			<content:encoded><![CDATA[<p>　　作为一个网站管理员，我们经常会有需要知道当前什么人正在访问我们的网站，谁正在频繁的抓取我们网站的内容，什么搜索引擎正在抓取我们网站？面对这些问题，我们虽然可以去查看log日志文件，但是却不能让我们实时统计，不能给我们直观的统计数据。现在好了，有了apachetop这个工具就可以实时的跟踪log的变化，对网站管理帮助很大。Apachetop是一个apache的log实时监测程序，能查看访问者正在查看哪些文件，和访问者IP等信息。</p>
<p>　　首先，看看怎么安装：</p>
<div id="zoomtext" class="textbox-content">
<div class="quote">
<blockquote>
<div class="quote-content">cd /usr/ports/sysutils/<a href="http://ourapache.com/archives/tag/apachetop" class="st_tag internal_tag" rel="tag" title="标签 apachetop 下的日志">apachetop</a><br />
#如果你需要增加正则表达式等功能，则先执行配置命令，不需要则跳过<br />
make config<br />
make<br />
make install</div>
</blockquote>
</div>
<p>      安装成功之后，将在/usr/local/bin，加入apachetop命名文件，如果不能直接执行，请到这里来找。</p>
<p>　　一般使用方法：</p>
<div class="quote">
<blockquote>
<div class="quote-content"># apachetop -f /var/<a href="http://ourapache.com/archives/tag/log" class="st_tag internal_tag" rel="tag" title="标签 log 下的日志">log</a>/httpd.access</div>
</blockquote>
</div>
<p>    下面是用法说明：</p>
<div class="quote">
<blockquote>
<div class="quote-content">ApacheTop v0.12.6 &#8211; Usage:<br />
File options:<br />
 -f logfile  open logfile (assumed common/combined) [/var/log/httpd-access.log]<br />
             (repeat option for more than one source)</p>
<p>URL/host/referrer munging options:<br />
 -q          保持请求字符串[no]<br />
 -l           所有的url小写[no]<br />
 -s num  保持url路径段数量 [all]<br />
 -p          在referrer前面保留协议 [no]<br />
 -r          保留每一个的主机/ip [no]</p>
<p>Stats options:<br />
 必须提供两个参数 default: [-T 30]<br />
缺省设置为保持记录状态30秒，30秒后数据刷新了。为了提供更多的信息给我们分析，我们可以调节下面的参数。<br />
 -H hits     保持状态只到多少点击数<br />
 -T secs     保持状态只到多少秒</p>
<p> -d secs     刷新延迟时间[5]</p>
<p> -h          这个帮助。</p></div>
</blockquote>
</div>
<p>    当执行之后，还有命令可以切换显示状态：</p>
<div class="quote">
<blockquote>
<div class="quote-content">ApacheTop version 0.12.6, Copyright (c) 2003-2004, Chris Elsworth</p>
<p>ONE-TOUCH COMMANDS<br />
d          : 切换urls/referrers/hosts显示模式开关<br />
n          : 切换hits &amp; bytes或返回代码开关<br />
h or ?     : 帮助信息<br />
p          : (un)暂停显示 (冻结更新)<br />
q          : 退出 ApacheTop<br />
up/down    : 移动星标 up/down<br />
right/left : 进入/退出逐条显示模式<br />
子菜单:<br />
s:  排序: [the appropriate menu will appear for your display]<br />
       r) requests  R) reqs/sec  b) bytes  B) bytes/sec<br />
       2) 2xx   3) 3xx   4) 4xx   5) 5xx</p>
<p>t:  固定显示 ON/OFF:<br />
       u) urls  r) referrers  h) hosts</p>
<p>f:  使用过滤器:<br />
       a) add/edit menu c) clear all  s) show active (not done yet)<br />
       a:  ADD FILTER SUBMENU<br />
               u) to urls  r) to referrers  h) to hosts</p></div>
</blockquote>
</div>
</div>
<h3  class="related_post_title">相关文章</h3><ul class="related_post"><li>2009年06月1号 -- <a href="http://ourapache.com/archives/243" title="玩转apache之日志">玩转apache之日志</a></li><li>2009年02月26号 -- <a href="http://ourapache.com/archives/184" title="Apache日志文件（配置和管理）">Apache日志文件（配置和管理）</a></li><li>2009年02月25号 -- <a href="http://ourapache.com/archives/176" title="网站服务器(Apache)的日志与监视">网站服务器(Apache)的日志与监视</a></li><li>2009年02月25号 -- <a href="http://ourapache.com/archives/172" title="查询并禁止apache中异常访问量的用户">查询并禁止apache中异常访问量的用户</a></li></ul>
	标签：<a href="http://ourapache.com/archives/tag/apachetop" title="apachetop" rel="tag">apachetop</a>, <a href="http://ourapache.com/archives/category/primary" title="Apache初级应用" rel="tag">Apache初级应用</a>, <a href="http://ourapache.com/archives/tag/log" title="log" rel="tag">log</a><br />
]]></content:encoded>
			<wfw:commentRss>http://ourapache.com/archives/130/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>apache + resin的多机部署方案实现方法</title>
		<link>http://ourapache.com/archives/114</link>
		<comments>http://ourapache.com/archives/114#comments</comments>
		<pubDate>Tue, 10 Feb 2009 06:58:30 +0000</pubDate>
		<dc:creator>OurApache</dc:creator>
				<category><![CDATA[Apache初级应用]]></category>
		<category><![CDATA[resin]]></category>

		<guid isPermaLink="false">http://www.ourapache.com/?p=114</guid>
		<description><![CDATA[   前言：前段时间，对公司前台多机分布方案的做了一些探索，总结了一些东西，贴出来分享。类似内容网上比较多，但是都不够详细，我第一次弄时费力不少，希望后来人可以更方便一些。 ]]></description>
			<content:encoded><![CDATA[<p>    前言：前段时间，对公司前台多机分布方案的做了一些探索，总结了一些东西，贴出来分享。类似内容网上比较多，但是都不够详细，我第一次弄时费力不少，希望后来人可以更方便一些。</p>
<p>一. 编译安装apache<br />
1) 从apache官网上下载apache最新的 release版本2.2.6<br />
unix版本取httpd-2.2.6.tar.gz<br />
2) 解开包<br />
gunzip httpd-2.2.6.tar.gz<br />
tar xvf httpd-2.2.6.tar<br />
3) 编译安装<br />
进入解压后的目录httpd-2.2.6，依次执行<br />
./configure &#8211;prefix=/*要安装apache的目录*/ &#8211;enable-so<br />
make<br />
make install<br />
成功后apache就安装到前面指定的目录了</p>
<p>二)  启动apache<br />
进入apache安装目录<br />
1) 修改apache/conf/httpd.conf<br />
Listen 80 修改80为需要的端口如 11280<br />
2) 启动<br />
进入apache/bin/执行： ./apachectl start<br />
3) 打开浏览起访问<br />
http://ip: 11280</p>
<p>三) 编译安装resin</p>
<p>./configure &#8211;prefix=/data/aoxj/artest/<a href="http://ourapache.com/archives/tag/resin" class="st_tag internal_tag" rel="tag" title="标签 resin 下的日志">resin</a> &#8211;with-apxs=/data/aoxj/artest/<a href="http://ourapache.com/archives/tag/apache" class="st_tag internal_tag" rel="tag" title="标签 apache 下的日志">apache</a>/bin/apxs  &#8211;with-<a href="http://ourapache.com/archives/tag/apache" class="st_tag internal_tag" rel="tag" title="标签 apache 下的日志">apache</a>=/data/aoxj/artest/<a href="http://ourapache.com/archives/tag/apache" class="st_tag internal_tag" rel="tag" title="标签 apache 下的日志">apache</a><br />
make<br />
make install<br />
上述操作除了编译安装resin外（其实不做这些操作，resin本身也是可以跑起来的），还会修改apache，包括：<br />
1. copy mod_caucho.so到apache目录（就是前面指定的&#8211;with-apache=/data/aoxj/artest/apache）的modules<br />
2. 修改apache的配置文件conf/httpd.conf，自动增加以下内容<br />
LoadModule caucho_module ***/modules/mod_caucho.so<br />
ResinConfigServer localhost 6802<br />
CauchoConfigCacheDirectory /tmp<br />
CauchoStatus yes</p>
<p>四）配置resin<br />
需要修改resin.conf文件</p>
<p>&lt;cluster&gt;<br />
&lt;srun server-id=”a” host=”192.168.0.1&#8243; port=”6802&#8243;/&gt;<br />
&lt;srun server-id=”a” host=”192.168.0.1&#8243; port=”6802&#8243;/&gt;<br />
&lt;/cluster&gt;</p>
<p>五）启动resin<br />
运行resin/bin/httpd.sh<br />
注意一定要加-server，否则resin启动后是监听80/8080这样的端口，而不是上面cluster设置里面的6802<br />
./httpd.sh -server a start<br />
这样resin才会监听6802，建议手工telnet确认一下。如果resin启动不正确，后面apache启动后访问resin就会失败，然后在页面报503错误。<br />
以后stop/restart 时也需要加-server</p>
<p>六) 配置apache<br />
确认conf/httpd.conf文件中的以下内容<br />
1) LoadModule caucho_module ***/modules/mod_caucho.so<br />
检查mod_caucho.so是否存在<br />
2) ResinConfigServer localhost 6802<br />
这个ResinConfigServer只能出现一行,如果resin有多台,请在这里指定的那台resin配置文件中的&lt;cluster&gt;中配置其他机器的ip/port<br />
3) CauchoConfigCacheDirectory /tmp<br />
4)CauchoStatus yes</p>
<p>最后修改的配置为:</p>
<p>LoadModule caucho_module “/data/aoxj/artest/apache/modules/mod_caucho.so”<br />
ResinConfigServer 192.168.0.1 6802<br />
AddHandler caucho-request .action<br />
CauchoConfigCacheDirectory /tmp<br />
CauchoStatus yes</p>
<p>八）web访问<br />
启动apache<br />
用浏览器访问apache的端口，注意不是访问resin的端口</p>
<h3  class="related_post_title">相关文章</h3><ul class="related_post"><li>2009年02月16号 -- <a href="http://ourapache.com/archives/140" title="Apache、resin、rewrite泛域名、多域名设置">Apache、resin、rewrite泛域名、多域名设置</a></li></ul>
	标签：<a href="http://ourapache.com/archives/category/primary" title="Apache初级应用" rel="tag">Apache初级应用</a>, <a href="http://ourapache.com/archives/tag/resin" title="resin" rel="tag">resin</a><br />
]]></content:encoded>
			<wfw:commentRss>http://ourapache.com/archives/114/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache和IIS共享80端口的四个方法</title>
		<link>http://ourapache.com/archives/104</link>
		<comments>http://ourapache.com/archives/104#comments</comments>
		<pubDate>Tue, 10 Feb 2009 06:30:24 +0000</pubDate>
		<dc:creator>OurApache</dc:creator>
				<category><![CDATA[Apache初级应用]]></category>
		<category><![CDATA[iis]]></category>
		<category><![CDATA[端口]]></category>

		<guid isPermaLink="false">http://www.ourapache.com/?p=104</guid>
		<description><![CDATA[Apache和IIS共享80端口的四个方法]]></description>
			<content:encoded><![CDATA[<p><strong>方法一：</strong><br />
<a href="http://ourapache.com/archives/tag/iis" class="st_tag internal_tag" rel="tag" title="标签 iis 下的日志">IIS</a>5，多IP下共存，IIS为192.168.0.1，apache为192.168.0.2<br />
c:\Inetpub\Adminscripts<br />
cscript adsutil.vbs set w3svc/disablesocketpooling true<br />
该命令反馈如下disablesocketpooling : (BOOLEAN) True<br />
重启IIS<br />
Inetpub\AdminScripts&gt;cscript adsutil.vbs set w3svc/disablesocketpooling true<br />
由于 DisableSocketPooling 在 IIS 6.0 元数据库架构 (MBSchema.xml) 中被定义为有效属性，所以，您仍然可以使用 Adsutil.vbs 设置该属性，但这种设置不起作用。IIS 6.0 中的功能是新增的核心级别驱动程序 HTTP.sys 的一部分。要配置 HTTP.sys，您必须使用 Httpcfg.exe</p>
<p><strong>方法二：</strong><br />
IIS6，多IP下共存，IIS为192.168.0.1，apache为192.168.0.2<br />
到2003的CD下的 support/tools/Support.cab。解压出httpcfg.exe文件，COPY到windows/system32/目录下，用法自己看帮助<br />
命令行<br />
绑定到某IP： httpcfg set iplisten -i 192.168.0.1<br />
即命令使用IIS的只监听指定的IP及端口<br />
查看绑定： httpcfg query iplisten<br />
删除绑定： httpcfg delete iplisten -i 192.168.0.1<br />
命令行<br />
net stop <a href="http://ourapache.com/archives/tag/apache" class="st_tag internal_tag" rel="tag" title="标签 apache 下的日志">Apache</a>2<br />
net stop iisadmin /y<br />
net START Apache2<br />
net START w3svc<br />
保证iis下的ip设置为全局默认，Apache中httpconf设置listen 192.168.0.2:80，就应该可以两个服务同时运行，相互不冲突了。<br />
IIS的访问地址为http://192.168.0.1，Apache访问地址为http://192.168.0.2<br />
<span style="color: red;">提醒：IIS要指定为IP地址192.168.0.1 <a href="http://ourapache.com/archives/tag/%e7%ab%af%e5%8f%a3" class="st_tag internal_tag" rel="tag" title="标签 端口 下的日志">端口</a>80；Apache 设置listen 192.168.0.2:80。关键是IIS用httpcfg命令绑定后，要重启系统，仅仅重启服务是不行的。</span></p>
<p><strong>方法三：</strong><br />
将apache设为使用80端口，IIS使用其它端口，比如81，然后将apache作为IIS的代理。<br />
在httpd.conf里面，取消下面四行的注释：<br />
LoadModule proxy_module modules/mod_proxy.so<br />
LoadModule proxy_connect_module modules/mod_proxy_connect.so<br />
LoadModule proxy_http_module modules/mod_proxy_http.so<br />
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so</p>
<p>然后建立一个虚拟主机，将该域名的所有访问转向81端口。</p>
<p>ServerName iloves.vicp.net<br />
ProxyPass / http://localhost:81/<br />
ProxyPassReverse / http://localhost:81/</p>
<p>这样，对外就可以只需要一个端口，即可同时使用apache和IIS的功能了</p>
<p><strong>方法四：</strong><br />
网上常用的单IP共用80端口方法，不过不推荐，只是使用Apache的代理，速度有影响将apache设为使用80端口，IIS使用其它端口，比如81，然后将apache作为IIS的代理。<br />
在httpd.conf里面，取消下面四行的注释：<br />
LoadModule proxy_module modules/mod_proxy.so<br />
LoadModule proxy_connect_module modules/mod_proxy_connect.so<br />
LoadModule proxy_http_module modules/mod_proxy_http.so<br />
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so<br />
然后建立一个虚拟主机，将该域名的所有访问转向81端口。<br />
ServerName iloves.vicp.net<br />
ProxyPass / http://localhost:81/<br />
ProxyPassReverse / http://localhost:81/<br />
这样，对外就可以只需要一个端口，即可同时使用apache和IIS的功能了<br />
类推，使用第二种方法，你可以在IIS上配置PHP4，Apache2中配置PHP5，只需要IIS中安装PHP4，把php.ini复制到\windows目录即可，这个就不用说了吧，Apache2中，只要把PHP5的php.ini放在PHP5安装目录里面就行了<br />
配置Apache以支持PHP5：<br />
LoadModule php5_module “D:/PHPServer/PHP5/php5apache2.dll”<br />
AddType application/x-httpd-php .php<br />
DirectoryIndex index.html index.php<br />
PHPIniDir “D:/PHPServer/PHP5″<br />
其中最重要的一条就是 PHPIniDir，用来指明php.ini文件所在位置，即PHP5的安装目录，注意所有目录的应该改为D:/PHPServer/PHP5这种格式，而非D:\PHPServer\PHP5，IIS的访问地址为http://192.168.0.1，Apache访问地址为http://192.168.0.2</p>
<h3  class="related_post_title">相关文章</h3><ul class="related_post"><li>2009年08月13号 -- <a href="http://ourapache.com/archives/273" title="Apache和IIS共享80端口的四个方法">Apache和IIS共享80端口的四个方法</a></li></ul>
	标签：<a href="http://ourapache.com/archives/category/primary" title="Apache初级应用" rel="tag">Apache初级应用</a>, <a href="http://ourapache.com/archives/tag/iis" title="iis" rel="tag">iis</a>, <a href="http://ourapache.com/archives/tag/%e7%ab%af%e5%8f%a3" title="端口" rel="tag">端口</a><br />
]]></content:encoded>
			<wfw:commentRss>http://ourapache.com/archives/104/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用apache下的301设置来做域名的更换转移</title>
		<link>http://ourapache.com/archives/97</link>
		<comments>http://ourapache.com/archives/97#comments</comments>
		<pubDate>Sat, 07 Feb 2009 12:41:33 +0000</pubDate>
		<dc:creator>OurApache</dc:creator>
				<category><![CDATA[Apache初级应用]]></category>
		<category><![CDATA[301]]></category>
		<category><![CDATA[域名]]></category>

		<guid isPermaLink="false">http://www.ourapache.com/?p=97</guid>
		<description><![CDATA[页面永久性移走（301重定向）是一种“自动转向”技术。当您的域名变更后，比如网站以前用的域名是www.xingmo.com.cn，现在要用www.xingmo.cn ，这时就要用到这个技术了。]]></description>
			<content:encoded><![CDATA[<p>页面永久性移走（301重定向）是一种“自动转向”技术。当您的域名变更后，比如网站以前用的域名是www.xingmo.com.cn，现在要用www.xingmo.cn ，这时就要用到这个技术了。</p>
<p>您可能也会说，我可以用php的header函数，javascript的meta refresh,window.location.href来做转向，但建议不要这么做。这么做可能会被搜索引擎认为是在作弊，从而影响网站排名。</p>
<p>在Apache中，可以用<strong>.<a href="http://ourapache.com/archives/tag/htaccess" class="st_tag internal_tag" rel="tag" title="标签 htaccess 下的日志">htaccess</a></strong>来设置并实现301重定向的功能。</p>
<p>Redirect permanent / http://www.xingmo.cn/ (将根目录下的内容重定向到http://www.xingmo.cn/ )<br />
redirect permanent /index.php http://www.xingmo.cn/index.php?go=category_6(将网页index.php重定向到<a href="http://www.xingmo.cn/index.php?go=category_6">http://www.xingmo.cn/index.php?go=category_6</a>)</p>
<p>通过合理地配置重定向参数中的正则表达式，可以实现更复杂的匹配。</p>
<p><span style="font-size: 12px;"><strong>PHP下的301重定向</strong></span></p>
<p>&lt;? php<br />
Header( “HTTP/1.1 <a href="http://ourapache.com/archives/tag/301" class="st_tag internal_tag" rel="tag" title="标签 301 下的日志">301</a> Moved Permanently” ) ;<br />
Header( “Location: http://www.xingmo.cn” );<br />
?&gt;</p>
<p><span style="font-size: 12px;"><strong>旧域名重定向到新域名</strong></span></p>
<p>创建一个.htaccess文件，并将下面提供的代码写入文件内，它可以确保旧域名所有的目录或者网页正确的跳转到新域名内。</p>
<p>记住.htaccess文件一定要放在旧网站的根目录下，并且新网站要和旧网站保持相同的目录结构及网页文件</p>
<div class="code">
Options +FollowSymLinks<br />
RewriteEngine on<br />
RewriteRule (.*) http://www.xingmo.cn/$1 [R=301,L]<br />
 </div>
<p> 将这个文件保存为.htaccess放在原www.xingmo.com.cn网站的根目录下。</p>
<p>请将上面的www.xingmo.cn修改成你想要跳转到的域名。<br />
此外，我建议大家归总旧网站的外部链接，并联系相应的站点修改导入链链的URL，以指向新站点。</p>
<p>注意：.htaccess文件只有在使用安装有Mod Rewrite模块的Apache作为WEB服务器的Linux主机上才能起作用</p>
<p><span style="font-size: 12px;"><strong><a href="http://ourapache.com/archives/tag/%e5%9f%9f%e5%90%8d" class="st_tag internal_tag" rel="tag" title="标签 域名 下的日志">域名</a>301重定向到www的二级域名</strong></span></p>
<p>创建一个.htaccess文件，并将下面提供的代码写入文件内，它可以确保所有来自对xingmo.cn的请求都转向到对www.xingmo.cn进行请求。记住.htaccess文件一定要放在旧网站的根目录下，并且新网站要和旧网站保持相同的目录结构及网页文件<br />
 <br />
Options +FollowSymlinks<br />
RewriteEngine on<br />
rewritecond %{http_host} ^xingmo.cn [nc]<br />
rewriterule ^(.*)$ http://www.xingmo.cn/$1 [r=301,nc]<br />
 </p>
<p>请将上面的<span style="color: #444444;">http://www.xingmo.cn/</span>修改成你想要跳转到的域名。</p>
<p>注意：.htaccess文件只有在使用安装有Mod Rewrite模块的Apache作为WEB服务器的Linux主机上才能起作用。</p>
<h3  class="related_post_title">相关文章</h3><ul class="related_post"><li>2009年12月12号 -- <a href="http://ourapache.com/archives/310" title=".htaccess的301跳转">.htaccess的301跳转</a></li><li>2009年02月16号 -- <a href="http://ourapache.com/archives/140" title="Apache、resin、rewrite泛域名、多域名设置">Apache、resin、rewrite泛域名、多域名设置</a></li><li>2009年02月12号 -- <a href="http://ourapache.com/archives/134" title="泛域名与mod_rewrite">泛域名与mod_rewrite</a></li></ul>
	标签：<a href="http://ourapache.com/archives/tag/301" title="301" rel="tag">301</a>, <a href="http://ourapache.com/archives/category/primary" title="Apache初级应用" rel="tag">Apache初级应用</a>, <a href="http://ourapache.com/archives/tag/%e5%9f%9f%e5%90%8d" title="域名" rel="tag">域名</a><br />
]]></content:encoded>
			<wfw:commentRss>http://ourapache.com/archives/97/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

