<?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; 配置</title>
	<atom:link href="http://ourapache.com/archives/tag/%e9%85%8d%e7%bd%ae/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>Apache2中俩种设置PHP的异同</title>
		<link>http://ourapache.com/archives/318</link>
		<comments>http://ourapache.com/archives/318#comments</comments>
		<pubDate>Tue, 09 Mar 2010 01:38:09 +0000</pubDate>
		<dc:creator>OurApache</dc:creator>
				<category><![CDATA[Apache高级应用]]></category>
		<category><![CDATA[apache2handler]]></category>
		<category><![CDATA[Hook]]></category>
		<category><![CDATA[配置]]></category>

		<guid isPermaLink="false">http://www.ourapache.com/?p=318</guid>
		<description><![CDATA[Apache2开始引入了Hook方式, 对应的在PHP中也提供了apache2handler这种sapi. 

和我之前介绍过的PHP lifecycle不同, 这种情况下的PHP, 通过注册handler钩子, 从而可以在handler hook阶段有机会处理请求, 通过判断请求的handler, 来确定是否需要处理, 如果需要就会调用自身的处理器.
]]></description>
			<content:encoded><![CDATA[<p>Apache2开始引入了Hook方式, 对应的在PHP中也提供了apache2handler这种sapi.</p>
<p>和我之前介绍过的PHP lifecycle不同, 这种情况下的PHP, 通过注册handler钩子, 从而可以在handler hook阶段有机会处理请求, 通过判断请求的handler, 来确定是否需要处理, 如果需要就会调用自身的处理器.</p>
<p>那么, 这种情况下也就有了多种配置方法, 主要考虑如下俩种方式(第二种可以有多种变种):</p>
<blockquote><p>
第一种: AddType application/x-httpd-php .php<br />
第二种:<br />
      &lt;FilesMatch \.php$&gt;<br />
          SetHandler application/x-httpd-php</p></blockquote>
<p>首先来说, 这俩中方式的起作用的时刻不同, 对于第一种方式来说, 他是在type_check钩子阶段起作用的, 也就是在apache2src/modules/http/mod_mime.c中, 通过注册type_checker钩子, 加入find_ct(content_type), 在find_ct中, 通过配置文件中的mime映射, 或者是通过addType指令增加的映射, 根据文件的扩展来填充请求中的handler字段:</p>
<p>而对于第二种方式, 是在fixup钩子阶段, 通过注册fixups钩子阶段加入core_override_type(apache2src/server/core.c)函数, 来将目录级的配置指令生效.</p>
<p>而fixups钩子是晚于type_checker钩子的, 也是handler钩子之前最后的一个可以利用的钩子. 所以如果同时采用1,2俩种方式, 那么第二种方式会覆盖第一种方式设置的handler.</p>
<p>其次, 俩种方式依赖的数据结构不同, 第一种方式依赖的是一个全局的mime对照表extension_mappings, 这个表由mime配置文件和AddType指令而来.</p>
<p>而对于第二种方式, 它是根据配置文件构造的dir_config而来:</p>
<blockquote><p>
&#8230;.<br />
  core_dir_config *conf =<br />
        (core_dir_config *)ap_get_module_config(r-&gt;per_dir_config,<br />
                                                &amp;core_module);<br />
 <br />
    /* Check for overrides with ForceType / SetHandler<br />
*/<br />
    if (conf-&gt;mime_type &amp;&amp; strcmp(conf-&gt;mime_type, “none”))<br />
        ap_set_content_type(r, (char*) conf-&gt;mime_type);<br />
 <br />
    if (conf-&gt;handler &amp;&amp; strcmp(conf-&gt;handler, “none”))<br />
        r-&gt;handler = conf-&gt;handler;</p></blockquote>
<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月10号 -- <a href="http://ourapache.com/archives/123" title="Apache高级配置中文详解">Apache高级配置中文详解</a></li><li>2009年01月22号 -- <a href="http://ourapache.com/archives/66" title="Apache配置文件(httpd.conf)中文说明">Apache配置文件(httpd.conf)中文说明</a></li><li>2008年12月27号 -- <a href="http://ourapache.com/archives/9" title="apache禁止使用IP访问的实现方法">apache禁止使用IP访问的实现方法</a></li><li>2008年12月27号 -- <a href="http://ourapache.com/archives/7" title="apache中.htaccess的功能及写法">apache中.htaccess的功能及写法</a></li><li>2008年12月27号 -- <a href="http://ourapache.com/archives/3" title="apache的配置优化">apache的配置优化</a></li><li>2008年12月25号 -- <a href="http://ourapache.com/archives/1" title="使用gzip将你的Apache速度提高十倍">使用gzip将你的Apache速度提高十倍</a></li></ul>
	标签：<a href="http://ourapache.com/archives/tag/apache2handler" title="apache2handler" rel="tag">apache2handler</a>, <a href="http://ourapache.com/archives/category/advanced" title="Apache高级应用" rel="tag">Apache高级应用</a>, <a href="http://ourapache.com/archives/tag/hook" title="Hook" rel="tag">Hook</a>, <a href="http://ourapache.com/archives/tag/%e9%85%8d%e7%bd%ae" title="配置" rel="tag">配置</a><br />
]]></content:encoded>
			<wfw:commentRss>http://ourapache.com/archives/318/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache日志文件（配置和管理）</title>
		<link>http://ourapache.com/archives/184</link>
		<comments>http://ourapache.com/archives/184#comments</comments>
		<pubDate>Thu, 26 Feb 2009 04:07:19 +0000</pubDate>
		<dc:creator>OurApache</dc:creator>
				<category><![CDATA[Apache基础知识]]></category>
		<category><![CDATA[log]]></category>
		<category><![CDATA[日志]]></category>
		<category><![CDATA[配置]]></category>

		<guid isPermaLink="false">http://www.ourapache.com/?p=184</guid>
		<description><![CDATA[Apache日志文件（配置和管理）]]></description>
			<content:encoded><![CDATA[<p><strong>1.安全警告：</strong></p>
<p>任何人只要对Apache存放日志文件的目录具有写权限，也就当然地可以获得启动Apache的用户(通常是root)的权限，绝对不要随意给予任何人存放日志文件目录的写权限。</p>
<p><strong>2.错误日志(Error <a href="http://ourapache.com/archives/tag/log" class="st_tag internal_tag" rel="tag" title="标签 log 下的日志">Log</a>)</strong></p>
<p>Apache httpd将在这个文件中存放诊断信息和处理请求中出现的错误，由于这里经常包含了出错细节以及如何解决，如果服务器启动或运行中有问题，首先就应该查看这个错误日志</p>
<p>错误日志通常被写入一个文件(unix系统上一般是error_log ，Windows和OS/2上一般是error.log)。在unix系统中，错误日志还可能被重定向到syslog或通过管道操作传递给一个程序。</p>
<p><strong>3.访问日志(Access Log)</strong></p>
<p>记录服务器所处理的所有请求，其文件名和位置取决于CustomLog指令，LogFormat指令可以简化日志的内容。</p>
<p>不同版本的Apache httpd使用了不同的模块和指令来控制对访问的记录，包括mod_log_referer, mod_log_agent和TransferLog指令。现在，CustomLog指令包含了旧版本中相关指令的所有功能。</p>
<p><strong>通用日志格式</strong>(Common Log Format)，下面是一个典型的记录格式：<br />
LogFormat “%h %l %u %t \\”%r\\” %&gt;s %b” common<br />
CustomLog logs/access_log common<br />
它定义了一种特定的记录格式字符串，并给它起了个别名叫common ，其中的”%”指示服务器用某种信息替换，其他字符则不作替换。引号(”)必须加反斜杠转义，以避免被解释为字符串的结束。格式字符串还可以包含特殊的控制符，如换行符”\\n” 、制表符”\\t”。<br />
CustomLog指令建立一个使用指定别名的新日志文件，除非其文件名是以斜杠开头的绝对路径，否则其路径就是相对于ServerRoot的相对路径。</p>
<p><strong>组合日志格式</strong>(Combined Log Format)，形式如下：<br />
LogFormat “%h %l %u %t \\”%r\\” %&gt;s %b \\”%{Referer}i\\” \\”%{User-agent}i\\”” combined<br />
CustomLog log/access_log combined<br />
这种格式与通用日志格式类似，但是多了两个 %{header}i 项，其中的header可以是任何请求头。</p>
<p><strong>多文件访问日志</strong>：<br />
可以简单地在配置文件中用多个CustomLog指令来建立多文件访问日志。如下例，既记录基本的CLF信息，又记录提交网页和浏览器的信息，最后两行CustomLog示范了如何模拟ReferLog和AgentLog指令的效果。<br />
LogFormat “%h %l %u %t \\”%r\\” %&gt;s %b” common<br />
CustomLog logs/access_log common<br />
CustomLog logs/referer_log “%{Referer}i -&gt; %U”<br />
CustomLog logs/agent_log “%{User-agent}i”<br />
此例也说明了，记录格式可以直接由CustomLog指定，而并不一定要用LogFormat起一个别名。</p>
<p><strong>条件日志</strong>：<br />
许多时候，根据与请求特征相关的环境变量来有选择地记录某些客户端请求会带来便利。首先，需要使用SetEnvIf指令来设置特定的环境变量以标识符合某种特定条件的请求，然后用CustomLog指令的 env= 子句，根据这些环境变量来决定记录或排除特定的请求。例如：<br />
# 不记录本机发出的请求<br />
SetEnvIf Remote_Addr “127\\.0\\.0\\.1″ dontlog<br />
# 不记录对robots.txt文件的请求<br />
SetEnvIf Request_URI “^/robots\\.txt$” dontlog<br />
# 记录其他请求<br />
CustomLog logs/access_log common env=!dontlog</p>
<p><strong>4.日志滚动</strong></p>
<p>由于Apache会保持日志文件的打开，并持续写入信息，因此服务器运行期间不能执行滚动操作。移动或者删除日志文件以后，必须重新启动服务器才能让它打开新的日志文件。</p>
<p>用优雅的(graceful)方法重新启动，可以使服务器启用新的日志文件，而不丢失原来尚未写入的信息。为此，有必要等待一段时间，让服务器完成正在处理的请求，并将记录写入到原来的日志文件。以下是一个典型的日志滚动和为节省存储空间而压缩旧日志的例子：<br />
mv access_log access_log.old<br />
mv error_log error_log.old<br />
apachectl graceful<br />
sleep 600<br />
<a href="http://ourapache.com/archives/tag/gzip" class="st_tag internal_tag" rel="tag" title="标签 gzip 下的日志">gzip</a> access_log.old error_log.old</p>
<p><strong>5.管道日志</strong></p>
<p>Apache httpd可以通过管道将访问记录和出错信息传递给另一个进程，而不是写入一个文件，由于无须对主服务器进行编程，这个功能显著地增强了日志的灵活性。只要用管道操作符”|”后面跟一个可执行文件名，就可以使这个程序从标准输入设备获得事件记录。Apache在启动时，会同时启动这个管道日志进程，并且在运行过程中，如果这个进程崩溃了，会重新启动这个进程(所以我们称这个技术为”可靠管道日志”)。</p>
<p>管道日志进程由其父进程Apache httpd产生，并继承其权限，这意味着管道进程通常是作为root运行的，所以保持这个程序简单而安全极为重要。（yes）</p>
<p>管道日志的一种重要用途是，允许日志滚动而无须重新启动服务器。为此，服务器提供了一个简单的程序rotatelogs 。每24小时滚动一次日志的例子如下：<br />
CustomLog “|/usr/local/apache/bin/rotatelogs /var/log/access_log 86400″ common<br />
注意：引号用于界定整个管道命令行。虽然这是针对访问日志的，但是其用法对于其他日志也一样。</p>
<p>在其他站点，有一个类似但更灵活的日志滚动程序叫cronolog 。</p>
<p>如果有较简单的离线处理日志的方案，就不应该使用条件日志和管道日志，即使它们非常强大。</p>
<p><strong>6.虚拟主机日志</strong></p>
<p>如果服务器配有若干虚拟主机，那么还有几个控制日志文件的功能。首先，可以把日志指令放在&lt;VirtualHost&gt;段之外，让它们与主服务器使用同一个访问日志和错误日志来记录所有的请求和错误，但是这样就不能方便的获得每个虚拟主机的信息了。</p>
<p>如果把CustomLog或ErrorLog指令放在&lt;VirtualHost&gt;段内，所有对这个虚拟主机的请求和错误信息会被记录在其私有的日志文件中，那些没有在&lt;VirtualHost&gt;段内使用日志指令的虚拟主机将仍然和主服务器使用同一个日志。这种方法对虚拟主机较少的服务器很有用，但虚拟主机非常多时，就会带来管理上的困难，还经常会产生文件描述符短缺的问题。</p>
<p><strong>7.其他日志文件</strong><br />
略。。。</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月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>2010年03月9号 -- <a href="http://ourapache.com/archives/318" title="Apache2中俩种设置PHP的异同">Apache2中俩种设置PHP的异同</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/123" title="Apache高级配置中文详解">Apache高级配置中文详解</a></li><li>2009年02月10号 -- <a href="http://ourapache.com/archives/117" title="让Apache按日期保存日志数据">让Apache按日期保存日志数据</a></li><li>2009年01月22号 -- <a href="http://ourapache.com/archives/66" title="Apache配置文件(httpd.conf)中文说明">Apache配置文件(httpd.conf)中文说明</a></li></ul>
	标签：<a href="http://ourapache.com/archives/category/basic" 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>, <a href="http://ourapache.com/archives/tag/%e9%85%8d%e7%bd%ae" title="配置" rel="tag">配置</a><br />
]]></content:encoded>
			<wfw:commentRss>http://ourapache.com/archives/184/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache高级配置中文详解</title>
		<link>http://ourapache.com/archives/123</link>
		<comments>http://ourapache.com/archives/123#comments</comments>
		<pubDate>Tue, 10 Feb 2009 07:20:31 +0000</pubDate>
		<dc:creator>OurApache</dc:creator>
				<category><![CDATA[Apache基础知识]]></category>
		<category><![CDATA[配置]]></category>

		<guid isPermaLink="false">http://www.ourapache.com/?p=123</guid>
		<description><![CDATA[Apache安装成功后，在conf子目录下有四个文件：httpd.conf、srm.conf、access.conf、magic（请注意：在 www-howto文档中，说第四个文件是mime.types，但在实际安装中，在conf子目录下是magic文件）。httpd.conf是 Apache设置文件中的主文件，httpd程序启动时会先读取httpd.conf。srm.conf是数据配置文件，在这个文件中主要设置WWW Server读取文件的目录、目录索引时的画面、CGI执行时的目录等等。access.conf是负责基本的读取文件控制，限制目录所能执行的功能及访问目录的权限设置。]]></description>
			<content:encoded><![CDATA[<p>目前WWW Server软件有许多，能运行在Linux下的也不少，有NCSA HTTPd Server、CERN HTTPd Server、pache、Netscape Fast Track Server、Zeus Server等。这些软件各有特色：NCSA（美国伊利诺斯大学的国家超级计算应用中心）是WWW Browser Mosaic发迹之地，也是Netscape公司的安德森成名的地方；CERN（欧洲原子核研究中心）是WWW的起源地，1989年蒂姆•贝纳斯-李正是在这开发成功了世界上第一个Web服务器和客户机。这两家推出的WWW Server功能齐全，成为同类软件的标准，再加上它们都是Freeware，因此刚一推出就大受欢迎。前几年，在linux下WWW Server软件使用最多的是NCSA和CERN，但这一两年来，后起之秀Apache却独领风骚，号称”WWW Server之王”。在最新的Red Hat、Slackware和 OpenLinux各版本中都包含了Apache。<br />
　　<br />
　　Apache是在NCSA的基础上发展起来的，因此这二者的配置文件十分相似。<br />
　　<br />
　　一、安装<br />
　　Apache的安装十分简单。最好在安装RedHat时，选择安装Web Server，这样即使你对编译操作不熟的话，也能轻轻松松把服务器架设起来。<br />
　　<br />
　　如果你想亲自编译源文件，那么你已经不是一个初学者，建议你直接去看How-To文档或其他资料。打开机器，进入X-Window系统后，启动 Netscape Navigator，敲入本机的IP地址，如果出现”It worked”的欢迎页面，那说明服务器程序工作正常。你可以进行下一步配置工作。在不同的版本下，服务器默认的工作根目录也不一样。Red Hat默认的是/etc/httpd，配置文件在/etc/httpd/conf目录下，页面文件在/home/httpd目录下。<br />
　　<br />
　　二、 设置httpd.conf、srm.conf、access.conf文件<br />
　　Apache安装成功后，在conf子目录下有四个文件：<a href="http://ourapache.com/archives/tag/httpdconf" class="st_tag internal_tag" rel="tag" title="标签 httpd.conf 下的日志">httpd.conf</a>、srm.conf、access.conf、magic（请注意：在 www-howto文档中，说第四个文件是mime.types，但在实际安装中，在conf子目录下是magic文件）。httpd.conf是 Apache设置文件中的主文件，httpd程序启动时会先读取httpd.conf。srm.conf是数据配置文件，在这个文件中主要设置WWW Server读取文件的目录、目录索引时的画面、CGI执行时的目录等等。access.conf是负责基本的读取文件控制，限制目录所能执行的功能及访问目录的权限设置。<br />
　　<br />
　　下面将简单对这三个数据设置文件进行说明。<br />
　　<br />
　　httpd.conf文件<br />
　　<br />
　　TransferLog：<br />
　　<br />
　　如果你想知道你的网站上哪个页面最受来访者的欢迎，在一段时间内有多少人访问你的站点，你当然可以设置一个计数器，但每页都设计数器，太繁琐而且得到的结果不太煽俊Ｗ詈玫陌旆ㄇ查看相觢og文件，TransferLog命令就是指定当浏览器要求服务器传送文件时记录到所设置的文件，可以根据此文件查看有哪些用户看过哪些HTML文件。可用一些程序分析这个文件的数据，得出监测各种有用的数据。默认的访问log文件是logs/access_<a href="http://ourapache.com/archives/tag/log" class="st_tag internal_tag" rel="tag" title="标签 log 下的日志">log</a>。<br />
　　<br />
　　ErrorLog：<br />
　　<br />
　　这个命令是指定当WWW Server运转过程中发生问题时错误信息存放到哪个文件。默认是logs/error_log。<br />
　　<br />
　　VirtualHost：<br />
　　<br />
　　这个命令是用来设置虚拟主机，即用一台主机执行多个域名的WWW Server。详细命令使用将在第三部分详细解释。<br />
　　<br />
　　srm.conf<br />
　　<br />
　　DocumentRoot：<br />
　　<br />
　　指定WWW Server存放html文件的根目录。WWW Server从硬盘中读取html文件传送给浏览器，并不是可从任一个目录中读取文件，而是从一个特定目录中开始读取文件，这个特定的目录就是由 DocumentRoot命令来指定。red hat5.2中默认的目录是/home/httpd/html。<br />
　　<br />
　　如果用户访问http://www.swm.com.cn/netlife/index.html，此时WWW Server并不是从系统的根目录下的netlife目录中读取index.html，而是从/home/httpd/html/netlife目录中读取index.html文件。<br />
　　UserDir：<br />
　　<br />
　　如果要在WWW Server上给一些用户开设空间，搁放个人主页，最好不要把每个人的html文件都放到DocumentRoot目录中，用UserDir命令可让每个人的页面放置在自己的home目录中。默认的目录是public_html。<br />
　　<br />
　　如果UserDir设置的目录是public_html，而Username是yan，而该user的home目录是/home/yan，那你访问http://www.swm.com.cn/~yan/intr.html时所看到的intr.html文件存放在/home/yan/public_html中，而不是/home/httpd/html。<br />
　　<br />
　　access.conf<br />
　　<br />
　　如果你有些目录只想让某些人访问，或者只允许在特定的目录下允许CGI程序，这时就要对access.conf进行修改。<br />
　　<br />
　　Apache的存取控制方式有两种：一是”整体存取控制”，只通过access.conf来控制文件的设置，来限定目录所能执行的功能及存取目录的权限设置。二是”特定目录存取控制”，在特定目录中建立存取设置文件，这个文件名在srm.conf中的AcessFileName来决定，默认是.<a href="http://ourapache.com/archives/tag/htaccess" class="st_tag internal_tag" rel="tag" title="标签 htaccess 下的日志">htaccess</a>。例如某些目录中的文件只允许某些人访问，那可在该目录下建立.htaccess文件，当WWW Server读取该目录时便会自动读取.htaccess来决定是否读取执行或要求口令验证。这两种方式所使用的命令几乎相同，而且设置的格式也相同。<br />
　　<br />
　　Directory：<br />
　　<br />
　　说明要设置的目录，然后再用命令来设置目录的功能和权限。<br />
　　<br />
　　Options：<br />
　　<br />
　　设置目录可以执行哪些功能。有None、All、ExecCGI、Includes、Indexs、IncludesNoExec、 FollowSymlink、SymlinksOwnerMatch等选项。如果想让某个目录可以执行CGI程序，那么应在Options命令中加上 ExecCGI选项。<br />
　　<br />
　　Require：<br />
　　<br />
　　设置可以对所指定目录以指定方式来存取的Users和Group。该命令执行后，当读取该目录数据时，系统会要求输入Username和Password。<br />
　　<br />
　　忠告：修改完设置文件后，不要像在Windows工作那样，重启机器使其生效。要记住，你现在linux下，使用linux的好处之一就是不用再见到 Windows 98那死机时的蓝屏以及不必对配置文件做了一点点修改就无聊而又频繁地重启机器。你的WWW服务器任何时候都有很多人在访问，频繁地重启机器将把你的客人赶跑。要学会不重启机器，而是重新启动一个正执行的程序（Process，严格一点应叫做进程、作业）。可以用kill命令来使程序重新启动。具体 kill的使用参见有关文档。<br />
　　<br />
　　先用ps命令查看httpd的pid号，然后用kill命令杀死它，重新启动httpd。具体命令如下：<br />
　　<br />
　　linux&gt; ps -x<br />
　　linux&gt; kill -HUP 13668<br />
　　<br />
　　（13668是假设httpd的pid号，在实际使用中，不同的情况值也不同）<br />
　　<br />
　　这样就可将httpd重新启动，使修改的配置文件生效。看完上面一大堆命令，是不是有些烦，其实你不了解这些命令也无所谓，用系统默认设置也能正常工作。<br />
　　<br />
　　三、 <a href="http://ourapache.com/archives/tag/%e8%99%9a%e6%8b%9f%e4%b8%bb%e6%9c%ba" class="st_tag internal_tag" rel="tag" title="标签 虚拟主机 下的日志">虚拟主机</a>（Virtual Host）的设置<br />
　　作为系统管理员，若你只有一个IP地址，却有好几个域名，又要求访问每个域名都要看到不同的内容，那怎么办？总不至于为每个域名都配上一台服务器吧。这就要采用虚拟主机（Virtual Host）技术，幸好Apache就支持这种功能。虚拟主机有两种方式：<a href="http://ourapache.com/archives/tag/ip" class="st_tag internal_tag" rel="tag" title="标签 ip 下的日志">IP</a>－Based（基于IP式）、Name-based（基于域名式）。 <a href="http://ourapache.com/archives/tag/ip" class="st_tag internal_tag" rel="tag" title="标签 ip 下的日志">IP</a>－Based指的是一个域名对应一个IP地址，而Name-based指的是多个域名对应一个IP地址。<br />
　　<br />
　　虚拟主机的设置并不复杂，只要在httpd.conf文件中加入相应的命令就行。<br />
　　<br />
　　下面是一个Name-based（基于域名式）虚拟主机的httpd.conf例子（编者注：因篇幅原因，我们这只给出了相关部分，全文见www.swm.com.cn）。IP为：192.168.188.20，两个域名分别是long.com.cn、short.com.cn。<br />
　　<br />
　　httpd.conf:<br />
　　<br />
　　NameVirtualHost 192.168.188.20<br />
　　<br />
　　ServerAdminwebmaster@long.com<br />
　　ServerNamewww.long.com<br />
　　DocumentRoot /home/httpd/long/html<br />
　　<br />
　　ErrorLog logs/error_log<br />
　　TransferLog logs/access_log<br />
　　<br />
　　ServerAdminwebmaster@short.com<br />
　　ServerNamewww.short.com<br />
　　DocumentRoot /home/httpd/short/html<br />
　　ErrorLog logs/short.com-error_log<br />
　　TransferLog logs/short.com-access_log<br />
　　<br />
　　NameVirtualHost命令指定在哪个IP上设置虚拟主机<br />
　　<br />
　　在VirtualHost命令中进行各个主机的具体设置。<br />
　　<br />
　　ServerAdmin命令是设定当WWW Server执行有问题时，会将ServerAdmin所设置的E-mail传送到浏览器，让使用者用该E-mail与系统管理员联系。<br />
　　<br />
　　ServerName命令是设置WWW Server的域名。<br />
　　<br />
　　四、 提供个人主页空间、用户homepage的设定<br />
　　经常见到某些网站提供个人主页，显得很神气，其实你也可以开放你机器上的空间给别人，这很简单就能实现。只要你按照下面的提示对你的WWW服务器配置文件进行修改。<br />
　　<br />
　　给用户开放个人主页空间，一是要确定用户主页的存放目录，二是开放用户主页目录的读取权限。<br />
　　<br />
　　方法一<br />
　　<br />
　　你以root的身份给用户chen开个帐号，系统自动会给chen分配一空间/home/user，而后在/home/chen的目录下建一public_html的子目录，子目录的属性要设成other可读和可执行的。<br />
　　<br />
　　接着修改access.conf。在文件的最后加上以下一段：<br />
　　<br />
　　AllowOverride None<br />
　　order allow,deny<br />
　　allow from all<br />
　　<br />
　　而后，重新运行httpd，用户就可以通过http://www.swm.com.cn/~chen/访问chen的个人主页。<br />
　　这种方法的优点是方便，缺点是安全性太差。<br />
　　<br />
　　方法二<br />
　　<br />
　　另一种办法是在/home/httpd目录下为用户chen建个目录chen。修改srm.conf中的UserDir为/home/httpd/*/html，接着重新运行httpd便可以了。</p>
<h3  class="related_post_title">相关文章</h3><ul class="related_post"><li>2010年03月9号 -- <a href="http://ourapache.com/archives/318" title="Apache2中俩种设置PHP的异同">Apache2中俩种设置PHP的异同</a></li><li>2009年02月26号 -- <a href="http://ourapache.com/archives/184" title="Apache日志文件（配置和管理）">Apache日志文件（配置和管理）</a></li><li>2009年01月22号 -- <a href="http://ourapache.com/archives/66" title="Apache配置文件(httpd.conf)中文说明">Apache配置文件(httpd.conf)中文说明</a></li><li>2008年12月27号 -- <a href="http://ourapache.com/archives/9" title="apache禁止使用IP访问的实现方法">apache禁止使用IP访问的实现方法</a></li><li>2008年12月27号 -- <a href="http://ourapache.com/archives/7" title="apache中.htaccess的功能及写法">apache中.htaccess的功能及写法</a></li><li>2008年12月27号 -- <a href="http://ourapache.com/archives/3" title="apache的配置优化">apache的配置优化</a></li><li>2008年12月25号 -- <a href="http://ourapache.com/archives/1" title="使用gzip将你的Apache速度提高十倍">使用gzip将你的Apache速度提高十倍</a></li></ul>
	标签：<a href="http://ourapache.com/archives/category/basic" title="Apache基础知识" rel="tag">Apache基础知识</a>, <a href="http://ourapache.com/archives/tag/%e9%85%8d%e7%bd%ae" title="配置" rel="tag">配置</a><br />
]]></content:encoded>
			<wfw:commentRss>http://ourapache.com/archives/123/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache配置文件(httpd.conf)中文说明</title>
		<link>http://ourapache.com/archives/66</link>
		<comments>http://ourapache.com/archives/66#comments</comments>
		<pubDate>Thu, 22 Jan 2009 07:30:48 +0000</pubDate>
		<dc:creator>OurApache</dc:creator>
				<category><![CDATA[Apache基础知识]]></category>
		<category><![CDATA[httpd.conf]]></category>
		<category><![CDATA[配置]]></category>

		<guid isPermaLink="false">http://www.ourapache.com/?p=66</guid>
		<description><![CDATA[Apache配置文件(httpd.conf)中文说明]]></description>
			<content:encoded><![CDATA[<p>Apache配置文件(<a href="http://ourapache.com/archives/tag/httpdconf" class="st_tag internal_tag" rel="tag" title="标签 httpd.conf 下的日志">httpd.conf</a>)中文说明<br />
# 基于 NCSA 服务的配置文件。 #<br />
#这是Apache服务器主要配置文件。 #它包含服务器的影响服务器运行的配置指令。<br />
#<br />
#不要只是简单的阅读这些指令信息而不去理解它。<br />
#这里只是做了简单的说明，如果你没有参考在线文件，你就会被警告。<br />
#<br />
#这些配置指令被分为下面三个部分：<br />
#1. 控制整个Apache服务器行为的部分（即全局环境变量）<br />
#2. 定义主要或者默认服务参数的指令，也为所有虚拟主机提供默认的设置参数<br />
#3. 虚拟主机的设置参数<br />
#<br />
#配置和日志文件名：如果你指定的文件名以“/”开始（win32下以“dirver:/”），<br />
#服务器将使用绝对路径，如果文件名不是以“/”开始的，那么它将把ServerRoot<br />
#的值附加在文件名的前面，例如，对“logs/foo.<a href="http://ourapache.com/archives/tag/log" class="st_tag internal_tag" rel="tag" title="标签 log 下的日志">log</a>”，如果ServerRoot的值<br />
#为“/usr/local/apache2”，则该文件应为“/usr/local/apache2/logs/foo.log”<br />
#<br />
##第一区：全局环境参数<br />
#<br />
#这里设置的参数将影响整个Apache服务器的行为；<br />
#例如Apache能够处理的并发请求的数量等。<br />
#<br />
#ServerRoot:指出服务器保存其配置、出错和日志文件等的根目录。<br />
#<br />
#注意！如果你想要将它指定为NFS或其它网络上的位置，<br />
#请一定要去阅读与LockFile有关的文档（可能在<br />
#http://httpd.apache.org/docs-2.0/mod/mpm_common.html#lockfile)。<br />
#这将会使你自己也能解决很多问题。<br />
#<br />
#路径的结尾不要添加斜线。<br />
#<br />
ServerRoot “/usr/loacl/apache2&#8243;</p>
<p>#<br />
#串行访问的锁文件必须保存在本地磁盘上<br />
#<br />
&lt;IfModule !mpm_winnt.c&gt; &lt;IfModule !mpm_neware.c&gt; #LockFile logs/accept.lock &lt;/IfModule&gt; &lt;/IfModule&gt;<br />
#ScoreBoardFile:用来保存内部服务进程信息的文件。<br />
#如果未指明（默认），记分板（scoreboard）将被保存在一个匿名的共享内存段中，<br />
#并且它不能被第三方软件所使用。<br />
#如果指定了，要确保不能使用两个Apache使用同一个记分板文件，<br />
#这个记分板文件必须保存在本地磁盘上。<br />
&lt;IfModule !mpm_netware.c&gt; &lt;IfModule !perchild.c&gt; #ScoreBoardFile logs/apache_runtime_status &lt;IfModule&gt; &lt;IfModule&gt;<br />
#<br />
#PidFile:记录服务器启动进程号的文件。<br />
#</p>
<p>#<br />
#Timeout:接收和发送前超时秒数<br />
#<br />
Timeout 300<br />
#<br />
#KeepAlive:是否允许稳固的连接（每个连接有多个请求），<br />
#设为”Off”则停用。<br />
#<br />
KeepAlive On<br />
#<br />
#MaxKeepAliveRequests:在稳固连接期间允许的最大请求数，<br />
#设为0表示无限制接入。<br />
#我们推荐你将其设为一个较大的值，以便提高性能<br />
MaxKeepAliveRequests 100<br />
#<br />
#KeepAliveTimeout:在同一个连接上从同一台客户上接收请求的秒数<br />
#<br />
KeepAliveTimeout 15<br />
##<br />
##Server-Pool大小设定（针对MPM的）<br />
##<br />
# prefork MPM<br />
# StartServers:启动时服务器启动的进程数<br />
# MinSpareServers:保有的备用进程的最小数目<br />
# MaxSpareServers:保有的备用进程的最大数目<br />
# MaxClients:服务器允许启动的最大进程数<br />
# MaxRequestsPerChild:一个服务进程允许的最大请求数<br />
&lt;IfModule prefork.c&gt; StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 150 MaxRequestPerChild 0 &lt;/IfModule&gt;<br />
# worker MPM<br />
# StartServers:服务器启动时的服务进程数目<br />
# MaxClients:允许同时连接的最大用户数目<br />
# MinSpareThreads:保有的最小工作线程数目<br />
# MaxSpareThreads:允许保有的最大工作线程数目<br />
# ThreadsPerChild:每个服务进程中的工作线程常数<br />
# MaxRequestsPerChild:服务进程中允许的最大请求数目<br />
&lt;IfModule worker.c&gt; StartServers 2 MaxClients 150 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 0 &lt;/IfModule&gt;<br />
# perchild MPM<br />
# NumServers:服务进程数量<br />
# StartThreads:每个服务进程中的起始线程数量<br />
# MinSpareThreads:保有的最小线程数量<br />
# MaxSpareThreads:保有的最大线程数量<br />
# MaxThreadsPerChild:每个服务进程允许的最大线程数<br />
# MaxRequestsPerChild:每个服务进程允许连接的最大数量<br />
&lt;IfModule perchild.c&gt; NumServers 5 StartThreads 5 MinSpareThreads 5 MaxSpareThreads 10 MaxThreadsPerChild 20 MaxRequestsPerChild 0 &lt;/IfModule&gt;<br />
# WinNT MPM<br />
# ThreadsPerChild:服务进程中工作线程常数<br />
# MaxRequestsPerChild:服务进程允许的最大请求数<br />
&lt;IfModule mpm_winnt.c&gt; ThreadsPerChild 250 MaxRequestsPerChild 0 &lt;/IfModule&gt;<br />
# BeOS MPM<br />
# StartThreads:服务器启动时启动的线程数<br />
# MaxClients:可以启动的最大线程数（一个线程等于一个用户）<br />
# MaxRequestsPerThread:每个线程允许的最大请求数<br />
&lt;IfModule beos.c&gt; StartThreads 10 MaxClients 50 MaxRequestsPerThread 10000 &lt;/IfModule&gt;<br />
# NetWare MPM<br />
# ThreadStachSize:为每个工作线程分配的堆栈尺寸<br />
# StartThreads:服务器启动时启动的线程数<br />
# MinSpareThreads:用于处理实发请求的空闲线程数<br />
# MaxSpareThreads:空闲线程的最大数量<br />
# MaxThreads:在同一时间活动的最大线程数<br />
# MaxRequestPerChild:一个线程服务请求的最大数量，<br />
# 推荐将其设置为0，以实现无限制的接入<br />
&lt;IfModule mpm_netware.c&gt; ThreadStackSize 65536 StartThreads 250 MinSpareThreads 25 MaxSpareThreads 250 MaxThreads 1000 MaxRequestPerChild 0 &lt;/IfModule&gt;<br />
# OS/2 MPM<br />
# StartServers:启动的服务进程数量<br />
# MinSpareThreads:每个进程允许的最小空闲线程<br />
# MaxSpareThreads:每个进程允许的最大空闲线程<br />
# MaxRequestsPerChild:每个服务进程允许的最大连接数<br />
&lt;IfModule mpmt_os2.c&gt; StartServers 2 MinSpareThreads 5 MaxSpareThreads 10 MaxRequestsPerChild 0 &lt;/IfModule&gt;<br />
#<br />
# Listen:允许你绑定Apache服务到指定的IP地址和端口上，以取代默认值<br />
# 参见指令<br />
# 使用如下命令使Apache只在指定的IP地址上监听，<br />
# 以防止它在IP地址0.0.0.0上监听<br />
#<br />
# Listen 12.34.56.78:80<br />
Listen 80<br />
#<br />
# 动态共享支持（DSO）<br />
#<br />
# 为了能够使用那些以DSO模式编译的模块中的函数，你必须有相应的“LoadModule”行，<br />
# 因此，在这里包含了这些指令，以便能在使用它之前激活。<br />
# 那些静态编译的模块不需要在这里列出 (即以“httpd -l”列出的模块)<br />
#<br />
# 示例：<br />
# LoadModule foo_module modules/mod_foo.so<br />
#<br />
#<br />
# ExtendedStatus：当调用“server-status”时，控制Apache是产生“全”状态<br />
# 信息（ExtendedStatus On），还是产生基本信息（ExtendedStatus Off）。<br />
# 默认为off<br />
#<br />
# ExtendedStatus On<br />
### 第二区：“主”服务配置<br />
#<br />
# 这一区建立被 “主” 服务器用的指令值,以回应那些不被<br />
# 定义处理的任何请求。<br />
# 这些数值也提供默认值给后面定义的容器。<br />
# 如果中有定义，那么这里定义的指令值将被<br />
# 中的定义所覆盖。<br />
#</p>
<p>#<br />
# 如果你想使httpd以另外的用户或组来运行，你必须在开始时以root方式启动<br />
# 然后再将它切换为你想要使用的用户或组。<br />
#<br />
# User/Group:运行httpd的用户和组<br />
# 在SCO (ODT3)上使用“User nouser”和“Group nogroup”<br />
# 在HPUX上，你可能不能以nobody身份使用共享内存，建议创建一个www用户。<br />
# 注意一些核心（kernel）在组ID大于60000时拒绝setgid(Group)或semctl(IPC_SET)，<br />
#节在这些系统上不要使用“Group #-1”。<br />
#</p>
<p>#<br />
# ServerAdmin:你的邮件地址，当发生问题时Apache将向你发出邮件。<br />
# 作为一个出错文档，这个地址显示在server-generated页上，<br />
# 例如：<br />
#</p>
<p>#<br />
# ServerName指定Apache用于识别自身的名字和端口号。<br />
# 通常这个值是自动指定的，但是我们推荐你显式的指定它以防止启动时出错<br />
#<br />
# 如果你为你的主机指定了一个无效的DNS名，server-generated重定向将不能工作。<br />
# 参见UseCanonicalName指令<br />
#<br />
# 如果你的主机没有注册DNS名，在这里键入它的IP地址<br />
# 无论如何，你必须使用它的IP地址来提供服务，<br />
# 这里使用一种容易理解的方式重定向服务</p>
<p>#<br />
# UseCanonicalName:决定Apache如何构造URLS和 SERVER_NAME 和 SERVER_PORT 的指令。<br />
# 当设置为 “Off”时,Apache会使用用户端提供的主机名和端口号。<br />
# 当设置为“On”,Apache会使用ServerName指令的值。<br />
#<br />
UseCanonicalName Off<br />
#<br />
# DocumentRoot:你的文档的根目录。默认情况下，所有的请求从这个目录进行应答。<br />
# 但是可以使用符号链接和别名来指向到其他的位置。<br />
#<br />
DocumentRoot “/home/redhat/public_html”<br />
#<br />
# Apache可以存取的每个目录都可以配置存取权限（包括它的子目录）。<br />
#<br />
# 首先，我们配置一个高限制的特征。<br />
# 这将禁止访问文件系统所在的目录，并添加你希望允许访问的目录块。<br />
# 如下所示</p>
<p>#<br />
# 注意从这里开始你一定要明确地允许哪些特别的特征能够被使用。<br />
# &#8211; 所以，如果Apache没有象你所期待的那样工作的话,<br />
# 请检查你是否在下面明确的指定它可用。<br />
#<br />
#<br />
# 这将改变到你设置的DocumentRoot<br />
#<br />
&lt;Directory “/home/redhat/public_html”&gt;<br />
#<br />
# Options：这个指令的值可以是“None”，“All”，或者下列选项的任意组合：<br />
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews<br />
#<br />
# 注意，“MultiViews”必须被显式的指定，“Options All”不能为你提供这个特性。<br />
#<br />
# 这个指令既复杂又重要，请参见<br />
#http://httpd.apache.org/docs-2.0/mod/core.html#optioins<br />
#<br />
Options FollowSymLinks<br />
#<br />
# AllowOverride控制那些被放置在.htaccess文件中的指令。<br />
# 它可以是“All”，“None”，或者下列指令的组合：<br />
# Options FileInfo AuthConfig Limit<br />
#<br />
AllowOverride None<br />
#<br />
# 控制谁可以获得服务。<br />
#</p>
<p>#<br />
# UserDir:指定在得到一个~user请求时将会添加到用户home目录后的目录名。<br />
#<br />
UserDir public_html<br />
# 为防止在UserDir指令上的漏洞，对root用户设置<br />
# 象“./”这样的UserDir是非常有用的。<br />
# 如果你使用Apache 1.3或以上版本，我们强烈建议你<br />
# 在你的服务器配置文件中包含下面的行<br />
UserDir disabled root<br />
#<br />
# 下面是一个使用UserDir指令使一个站点的目录具有只读属性的示例：<br />
#<br />
#<br />
# AllowOverride FileInfo AuthConfig Limit Indexes<br />
# Options MultiViews Indexes SymLinksIfOwnerMatch IncludeNoExec<br />
#<br />
# Order allow,deny<br />
# Allow from all<br />
#<br />
#<br />
# Order deny,allow<br />
# Deny from all<br />
#<br />
#<br />
#<br />
# DirectoryIndex:定义请求是一个目录时，Apache向用户提供服务的文件名<br />
#<br />
# index.html.var文件（一个类型映象文件）用于提供一个文档处理列表，<br />
# 出于同样的目的，也可以使用MultiViews选项，但是它会非常慢。<br />
#<br />
DirectoryIndex index.php index.html index.html.var<br />
#<br />
# AccessFileName:在每个目录中查询为目录提供附加配置指令的文件的文件名。<br />
# 参见AllowOverride指令。<br />
#<br />
AccessFileName .<a href="http://ourapache.com/archives/tag/htaccess" class="st_tag internal_tag" rel="tag" title="标签 htaccess 下的日志">htaccess</a><br />
#<br />
# 下面的行防止.htaccess和.htpasswd文件被Web客户查看。<br />
#</p>
<p>#<br />
# Typeconfig:定义在哪里查询mime.types文件。<br />
#<br />
TypeConfig conf/mime.types<br />
#<br />
# DefaultType:定义当不能确定MIME类型时服务器提供的默认MIME类型。<br />
# 如果你的服务主要包含text或HTML文档，“text/plain”是一个好的选择；<br />
# 如果大多是二进制文档，诸如软件或图像，你应使用<br />
# “application/octer-stream”来防止浏览器象显示文本那样显示二进制文件。<br />
#<br />
DefaultType text/plain<br />
#<br />
# mod_mime_magic允许服务器从自己定义自己类型的文件中使用不同的线索（hints），<br />
# 这个MIMEMagicFile指令定义hints定义所在的文件。<br />
#<br />
&lt;IfModule mod_mime_magic.c&gt; MIMEMagicFile conf/magic &lt;/IfModule&gt;<br />
#<br />
# HostnameLookups：指定记录用户端的名字还是IP地址，例如，本指令为on时<br />
# 记录主机名，如<br />
# 默认值为off，这要比设为on好得多，因为如果设为on则每个用户端请求都将会<br />
# 至少造成对 nameserver 进行一次查询。<br />
#<br />
HostnameLookups Off<br />
#<br />
# EnableMMAP:控制是否进行内存转储（如果操作系统支持的话）。<br />
# 默认为on，如果你的服务器安装在网络文件系统上（NFS），请关闭它。<br />
# 在一些系统上，关闭它会提升系统性能（与文件系统类型无关）；<br />
# 具体情况请参阅<br />
#<br />
# EnableMMAP off<br />
#<br />
# EnableSendfile:控制是否使用sendfile kernel支持发送文件<br />
# （如果操作系统支持的话）。默认为on，如果你的服务器安装在网络文件系统<br />
# （NFS）上，请你关闭它。<br />
# 参见<br />
#<br />
# EnableSendfile off<br />
#<br />
# ErrorLog:错误日志文件定位。<br />
# 如果你没有在内定义ErrorLog指令，这个虚拟主机的错误信息<br />
# 将记录在这里。如果你在那儿定义了ErrorLog，这些错误信息将记录在你所<br />
# 定义的文件里，而不是这儿定义的文件。<br />
#<br />
ErrorLog logs/error_log<br />
#<br />
# LogLevel:控制记录在错误日志文件中的日志信息数量。<br />
# 可能的值包括：debug，info，notice，warn，error，crit，alert，emerg。<br />
#<br />
LogLevel warn<br />
#<br />
# 下面的指令为CustomLog指令定义格式别名。<br />
#<br />
LogFormat “%h %l %u %t \”%r\” %&gt;s %b \”%{Referer}i\” \”%{User-Agent}i\”" combined LogFormat “%h %l %u %t \”%r\” %&gt;s %b” common LogFormat “%{Referer}i -&gt; %U” referer LogFormat “%{User-agent}i” agent<br />
# 你需要安装了mod_logio.c模块才能使用%I和%O。<br />
# LogFormat “%h %l %u %t \”%r\” %&gt;s %b \”%{Referer}i\” \”%{User-Agent}i\” %I %O” combinedio<br />
#<br />
# 指定接入日志文件的定位和格式（一般日志格式）。<br />
# 如果你没有在内定义这个指令，传输信息将记录在这里，<br />
# 如果你定义了这个指令，则记录在你指定的位置，而不是这儿定义的位置。<br />
#<br />
CustomLog logs/access_log common<br />
#<br />
# 如果你想要记录agent和referer信息，可以使用下面的指令<br />
#</p>
<p>#<br />
# 如果你想要使用一个文件记录access，agent和referer信息，<br />
# 你可以如下定义这个指令：<br />
#<br />
# CustomLog logs/access_log combined<br />
#<br />
# ServerTokens<br />
# 这个指令定义包含在HTTP回应头中的信息类型。默认为“Full”，<br />
# 这表示在回应头中将包含模块中的操作系统类型和编译信息。<br />
# 可以设为列各值中的一个：<br />
# Full | OS | Minor | Minimal | Major | Prod<br />
# Full传达的信息最多，而Prod最少。<br />
#<br />
ServerTokens Full<br />
#<br />
# 随意的添加包含服务器版本和虚拟主机名字一行信息到server-generated输出页中<br />
# （内部错误文档，FTP目录列表，mod_status和mod_info输出等等，除了CGI错误<br />
# 或自定义的错误文档以外）。<br />
# 设为“EMail”将包含一个指向ServerAdmin的mailto:连接。<br />
# 可以为如下值：On | Off | EMail<br />
#<br />
ServerSignature On<br />
#<br />
# Aliases:在这时添加你需要的别名，格式如下：<br />
# Alias 别名 真实名<br />
#<br />
# 注意，如果你在别名的未尾包含了“/”，那么在URL中也需要包含“/”。<br />
# 因此，“/icons”不是这个示例中的别名。<br />
# 如果别名中以“/”结尾，那么真实名也必须以“/”结尾，<br />
# 如果别名中省略了结尾的“/”，那么真实名也必须省略。<br />
#<br />
# 我们使用别名“/icons/”来表示FancyIndexed目录列表，如果你不使用、<br />
# FancyIndexing，你可以注释掉它。<br />
#<br />
# Alias /icons/ “/usr/local/apache2/icons/”<br />
# &lt;Directory “/usr/local/apache2/icons”&gt; # Options Indexes MultiViews # AllowOverride None # Order allow,deny ## Allow from all # &lt;/Directory&gt;<br />
#<br />
# 这将改变ServerRoot/manual。这个别名提供了手册页所在的位置，<br />
# 即使你改变了你的DocumentRoot。如果你对有无手册页并不在意的话，<br />
# 你可以注释掉它。<br />
#<br />
Alias /manual “/usr/loacl/apache2/manual” &lt;Directory “/usr/local/apache2/manual”&gt; Options Indexes FollowSymLinks MultiViews IncludesNoExec AddOutputFilter Includes html Order allow,deny Allow from all &lt;/Directory&gt;<br />
#<br />
# ScriptAlias:指定包含服务脚本的目录。<br />
# ScriptAliases 本质上与Aliases一样，除了这里的文档在请求时做为程序处理处理以外。<br />
# 尾部的“/”规则与Alias一样<br />
#<br />
ScriptAlias /cgi-bin/ “/usr/loacl/apache2/cgi-bin/”<br />
# 这里是添加php 4支持的指令<br />
AddType application/x-httpd-php .php LoadModule php4_module modules/libphp4.so &lt;IfModule mod_cgid.c&gt;<br />
#<br />
# 添加mod_cgid.c设置，mod_cgid提供使用cgid进行通讯的UNIX套接字的<br />
# 脚本接口路径。<br />
#<br />
# Scriptsock logs/cgisock<br />
&lt;/IfModule&gt;<br />
#<br />
# 将”/usr/local/apache2/cgi-bin”改为你的ScriptAliased指定的CGI目录，<br />
# 如果你配置了的话。<br />
#<br />
&lt;Directory “/usr/local/apache2/cgi-bin”&gt; AllowOverride None Options None Order allow,deny Allow from all &lt;/Directory&gt;<br />
#<br />
# Redirect允许你告诉客户端使用存在于服务器名字空间中的文档，<br />
# 而不是现在的，这帮助客户定位那些改变了位置的文档。<br />
# 例如：<br />
# Redirect permanent /foo http://www.example.com/bar<br />
#<br />
# 控制server-generated目录列表显示的指令<br />
#<br />
#<br />
# IndexOptions:控制server-generated目录列表显示特征。<br />
#<br />
IndexOptions FancyIndexing VersionSort<br />
#<br />
# AddIcon* 指令告诉服务器不同扩展名的图象文件如何显示，<br />
# 只适用于FancyIndexed指令<br />
#<br />
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-<a href="http://ourapache.com/archives/tag/gzip" class="st_tag internal_tag" rel="tag" title="标签 gzip 下的日志">gzip</a> AddIconByType (TXT,/icons/text.gif) text</p>
<h3  class="related_post_title">相关文章</h3><ul class="related_post"><li>2008年12月27号 -- <a href="http://ourapache.com/archives/9" title="apache禁止使用IP访问的实现方法">apache禁止使用IP访问的实现方法</a></li><li>2010年03月9号 -- <a href="http://ourapache.com/archives/318" title="Apache2中俩种设置PHP的异同">Apache2中俩种设置PHP的异同</a></li><li>2009年02月26号 -- <a href="http://ourapache.com/archives/184" title="Apache日志文件（配置和管理）">Apache日志文件（配置和管理）</a></li><li>2009年02月10号 -- <a href="http://ourapache.com/archives/123" title="Apache高级配置中文详解">Apache高级配置中文详解</a></li><li>2008年12月27号 -- <a href="http://ourapache.com/archives/7" title="apache中.htaccess的功能及写法">apache中.htaccess的功能及写法</a></li><li>2008年12月27号 -- <a href="http://ourapache.com/archives/3" title="apache的配置优化">apache的配置优化</a></li><li>2008年12月25号 -- <a href="http://ourapache.com/archives/1" title="使用gzip将你的Apache速度提高十倍">使用gzip将你的Apache速度提高十倍</a></li></ul>
	标签：<a href="http://ourapache.com/archives/category/basic" title="Apache基础知识" rel="tag">Apache基础知识</a>, <a href="http://ourapache.com/archives/tag/httpdconf" title="httpd.conf" rel="tag">httpd.conf</a>, <a href="http://ourapache.com/archives/tag/%e9%85%8d%e7%bd%ae" title="配置" rel="tag">配置</a><br />
]]></content:encoded>
			<wfw:commentRss>http://ourapache.com/archives/66/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>apache禁止使用IP访问的实现方法</title>
		<link>http://ourapache.com/archives/9</link>
		<comments>http://ourapache.com/archives/9#comments</comments>
		<pubDate>Sat, 27 Dec 2008 15:27:55 +0000</pubDate>
		<dc:creator>OurApache</dc:creator>
				<category><![CDATA[Apache初级应用]]></category>
		<category><![CDATA[httpd.conf]]></category>
		<category><![CDATA[ip]]></category>
		<category><![CDATA[虚拟主机]]></category>
		<category><![CDATA[配置]]></category>

		<guid isPermaLink="false">http://www.ourapache.com/?p=9</guid>
		<description><![CDATA[用apache搭建的WEB服务器，如何让用户只能通过设定的域名访问，而不能直接通过服务器的IP地址访问呢？]]></description>
			<content:encoded><![CDATA[<p>用apache搭建的WEB服务器，如何让用户只能通过设定的域名访问，而不能直接通过服务器的IP地址访问呢？百度了一下有几个方法,没有试验过.</p>
<p>方法一：在httpd.conf文件最后面，加入以下代码<br />
NameVirtualHost 221.*.*.*<br />
ServerName 221.*.*.*<br />
Order Allow,Deny<br />
Deny from all<br />
DocumentRoot “c:/web”<br />
ServerName www.xxx.com<br />
　　　　　<br />
说明：蓝色部分是实现拒绝直接通过221.*.*.*这个IP的任何访问请求，这时如果你用221.*.*.*访问，会提示拒绝访问。红色部分就是允许通过www.xxx.com这个域名访问，主目录指向c:/web（这里假设你的网站的根目录是c:/web）</p>
<p>方法二：在httpd.conf文件最后面，加入以下代码<br />
NameVirtualHost 221.*.*.*<br />
DocumentRoot “c:/test”<br />
ServerName 221.*.*.*<br />
DocumentRoot “c:/web”<br />
ServerName www.xxx.com<br />
说明：蓝色部分是把通过221.*.*.*这个IP直接访问的请求指向c:/test目录下，这可以是个空目录，也可以在里面建一个首页文件，如index.hmtl，首面文件内容可以是一个声明，说明不能通过IP直接访问。红色部分的意思跟方法一是一样的。<br />
注：修改后要重启apache</p>
<p>方法三：建一个虚拟主机，<br />
ServerName IPAddress (比如192.168.0.1)<br />
DocumentRoot /usr/local/apache/nosite/<br />
这样就可以了。<br />
在/usr/local/apache/nosite/下面建一个index.htm，提示用户，不允许IP访问。或其它出错信息。<br />
方法四：<br />
ServerName IPAddress (比如192.168.0.1)<br />
DocumentRoot /usr/local/apache/nosite/<br />
Order deny,allow<br />
Deny from all</p>
<h3  class="related_post_title">相关文章</h3><ul class="related_post"><li>2009年01月22号 -- <a href="http://ourapache.com/archives/66" title="Apache配置文件(httpd.conf)中文说明">Apache配置文件(httpd.conf)中文说明</a></li><li>2010年03月9号 -- <a href="http://ourapache.com/archives/318" title="Apache2中俩种设置PHP的异同">Apache2中俩种设置PHP的异同</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/170" title="Apache 两种虚拟主机方式的区别">Apache 两种虚拟主机方式的区别</a></li><li>2009年02月22号 -- <a href="http://ourapache.com/archives/161" title="在Windows上手动配置Apache下面的虚拟主机站点">在Windows上手动配置Apache下面的虚拟主机站点</a></li><li>2009年02月10号 -- <a href="http://ourapache.com/archives/128" title="apache限制并发数,IP,带宽设置">apache限制并发数,IP,带宽设置</a></li><li>2009年02月10号 -- <a href="http://ourapache.com/archives/123" title="Apache高级配置中文详解">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/7" title="apache中.htaccess的功能及写法">apache中.htaccess的功能及写法</a></li><li>2008年12月27号 -- <a href="http://ourapache.com/archives/3" 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/httpdconf" title="httpd.conf" rel="tag">httpd.conf</a>, <a href="http://ourapache.com/archives/tag/ip" title="ip" rel="tag">ip</a>, <a href="http://ourapache.com/archives/tag/%e8%99%9a%e6%8b%9f%e4%b8%bb%e6%9c%ba" title="虚拟主机" rel="tag">虚拟主机</a>, <a href="http://ourapache.com/archives/tag/%e9%85%8d%e7%bd%ae" title="配置" rel="tag">配置</a><br />
]]></content:encoded>
			<wfw:commentRss>http://ourapache.com/archives/9/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>apache中.htaccess的功能及写法</title>
		<link>http://ourapache.com/archives/7</link>
		<comments>http://ourapache.com/archives/7#comments</comments>
		<pubDate>Sat, 27 Dec 2008 15:15:58 +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=7</guid>
		<description><![CDATA[.htaccess 文件(或者"分布式配置文件"提供了针对目录改变配置的方法，即，在一个特定的文档目录中放置一个包含一个或多个指令的文件，以作用于此目录及其所有子目录。作为用户，所能使用的命令受到限制。管理员可以通过Apache的AllowOverride指令来设置。]]></description>
			<content:encoded><![CDATA[<p>- .<a href="http://ourapache.com/archives/tag/htaccess" class="st_tag internal_tag" rel="tag" title="标签 htaccess 下的日志">htaccess</a> 文件(或者”分布式配置文件”提供了针对目录改变配置的方法，即，在一个特定的文档目录中放置一个包含一个或多个指令的文件，以作用于此目录及其所有子目录。作为用户，所能使用的命令受到限制。管理员可以通过Apache的AllowOverride指令来设置。</p>
<p>- 子目录中的指令会覆盖更高级目录或者主服务器配置文件中的指令。</p>
<p>- .htaccess必须以ASCII模式上传，最好将其权限设置为644。</p>
<p><strong>错误文档的定位 </strong></p>
<p>常用的客户端请求错误返回代码：<br />
401 Authorization Required<br />
403 Forbidden<br />
404 Not Found<br />
405 Method Not Allowed<br />
408 Request Timed Out<br />
411 Content Length Required<br />
412 Precondition Failed<br />
413 Request Entity Too Long<br />
414 Request URI Too Long<br />
415 Unsupported Media Type<br />
常见的服务器错误返回代码：<br />
500 Internal Server Error</p>
<p>用户可以利用.htaccess指定自己事先制作好的错误提醒页面。一般情况下，人们可以专门设立一个目录，例如errors放置这些页面。然后再.htaccess中，加入如下的指令：</p>
<div>
<div>ErrorDocument 404 /errors/notfound.html<br />
ErrorDocument 500 /errors/internalerror.html</div>
</div>
<p>一条指令一行。上述第一条指令的意思是对于404，也就是没有找到所需要的文档的时候得显示页面为/errors目录下的notfound.html页面。不难看出语法格式为：</p>
<div>
<div>ErrorDocument 错误代码 /目录名/文件名.扩展名</div>
</div>
<p>如果所需要提示的信息很少的话，不必专门制作页面，直接在指令中使用HTML号了，例如下面这个例子：</p>
<div>
<div>ErrorDocument 401 “&lt;body bgcolor=#ffffff&gt;&lt;h1&gt;你没有权限访问该页面，请放弃！&lt;/h1&gt;&lt;/body&gt;”</div>
</div>
<p><strong>文档访问的密码保护</strong></p>
<p>要利用.htaccess对某个目录下的文档设定访问用户和对应的密码，首先要做的是生成一个.htpasswd的文本文档，例如：</p>
<div>
<div>zheng:y4E7Ep8e7EYV</div>
</div>
<p>这里密码经过加密，用户可以自己找些工具将密码加密成.htaccess支持的编码。该文档最好不要放在www目录下，建议放在www根目录文档之外，这样更为安全些。</p>
<p>有了授权用户文档，可以在.htaccess中加入如下指令了：</p>
<div>
<div>AuthUserFile .htpasswd的服务器目录<br />
AuthGroupFile /dev/null （需要授权访问的目录）<br />
AuthName EnterPassword<br />
AuthType Basic （授权类型）</p>
<p>require user wsabstract （允许访问的用户，如果希望表中所有用户都允许，可以使用 require valid-user）</p></div>
</div>
<p>注，括号部分为学习时候自己添加的注释</p>
<p><strong>拒绝来自某个IP的访问 </strong></p>
<p>如果我不想某个政府部门访问到我的站点的内容，那可以通过.htaccess中加入该部门的IP而将它们拒绝在外。</p>
<p>例如：</p>
<div>
<div>order allow,deny<br />
deny from 210.21.112.43<br />
deny from 219.146.95<br />
allow from all</div>
</div>
<p>第二行拒绝某个IP，第三行拒绝某个IP段，也就是219.146.95.0~219.146.95.255</p>
<p>想要拒绝所有人？用deny from all好了。不止用IP，也可以用域名来设定。</p>
<p><strong>保护.htaccess文档 </strong></p>
<p>在使用.htaccess来设置目录的密码保护时，它包含了密码文件的路径。从安全考虑，有必要把.htaccess也保护起来，不让别人看到其中的内容。虽然可以用其他方式做到这点，比如文档的权限。不过，.htaccess本身也能做到，只需加入如下的指令：</p>
<div>
<div>&lt;Files .htaccess&gt;<br />
order allow,deny<br />
deny from all<br />
&lt;/Files&gt;</div>
</div>
<p><strong>URL转向 </strong></p>
<p>我们可能对网站进行重新规划，将文档进行了迁移，或者更改了目录。这时候，来自搜索引擎或者其他网站链接过来的访问就可能出错。这种情况下，可以通过如下指令来完成旧的URL自动转向到新的地址：</p>
<div>
<div>Redirect /旧目录/旧文档名 新文档的地址</div>
</div>
<p>或者整个目录的转向：</p>
<div>
<div>Redirect 旧目录 新目录</div>
</div>
<p><strong>改变缺省的首页文件 </strong></p>
<p>一般情况下缺省的首页文件名有default、index等。不过，有些时候目录中没有缺省文件，而是某个特定的文件名，比如在pmwiki中是pmwiki.php。这种情况下，要用户记住文件名来访问很麻烦。在.htaccess中可以轻易的设置新的缺省文件名：</p>
<div>
<div>DirectoryIndex 新的缺省文件名</div>
</div>
<p>也可以列出多个，顺序表明它们之间的优先级别，例如：</p>
<div>
<div>DirectoryIndex filename.html index.cgi index.pl default.htm</div>
</div>
<p><strong>防止盗链</strong></p>
<p>如果不喜欢别人在他们的网页上连接自己的图片、文档的话，也可以通过htaccess的指令来做到。</p>
<p>所需要的指令如下：</p>
<div>
<div>RewriteEngine on<br />
RewriteCond % !^$<br />
RewriteCond % !^http://(www.)?phpv.net/.*$ [NC]<br />
RewriteRule .(gif|jpg)$ &#8211; [F]</div>
</div>
<p>如果觉得让别人的页面开个天窗不好看，那可以用一张图片来代替：</p>
<div>
<div>RewriteEngine on<br />
RewriteCond % !^$<br />
RewriteCond % !^http://(www.)?mydomain.com/.*$ [NC]<br />
RewriteRule .(gif|jpg)$ http://www.phpv.net/img_PageNotFound.gif [R,L]</div>
</div>
<h3  class="related_post_title">相关文章</h3><ul class="related_post"><li>2010年03月9号 -- <a href="http://ourapache.com/archives/318" title="Apache2中俩种设置PHP的异同">Apache2中俩种设置PHP的异同</a></li><li>2010年03月9号 -- <a href="http://ourapache.com/archives/316" title="htaccess二级目录重写找不到路径">htaccess二级目录重写找不到路径</a></li><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年02月26号 -- <a href="http://ourapache.com/archives/184" title="Apache日志文件（配置和管理）">Apache日志文件（配置和管理）</a></li><li>2009年02月10号 -- <a href="http://ourapache.com/archives/123" title="Apache高级配置中文详解">Apache高级配置中文详解</a></li><li>2009年01月22号 -- <a href="http://ourapache.com/archives/66" title="Apache配置文件(httpd.conf)中文说明">Apache配置文件(httpd.conf)中文说明</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/9" title="apache禁止使用IP访问的实现方法">apache禁止使用IP访问的实现方法</a></li></ul>
	标签：<a href="http://ourapache.com/archives/category/basic" 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/%e9%85%8d%e7%bd%ae" title="配置" rel="tag">配置</a><br />
]]></content:encoded>
			<wfw:commentRss>http://ourapache.com/archives/7/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>apache的配置优化</title>
		<link>http://ourapache.com/archives/3</link>
		<comments>http://ourapache.com/archives/3#comments</comments>
		<pubDate>Sat, 27 Dec 2008 15:09:48 +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=3</guid>
		<description><![CDATA[我的这个网站架设在美国的VPS上,有1G的内存.但是今天发现服务器的内存被完全用光了,非常的惊险,连SSH链接都几乎无法建立.肯定是Apache吃光了我的内存,于是赶紧优化,内存占用大幅降低.一切终于流畅起来了.下面把我参考过的文章顺过来,给朋友们分享。]]></description>
			<content:encoded><![CDATA[<p><strong>【APACHE的工作方式】</strong></p>
<p>prefork模式（默认）<br />
这个多路处理模块(MPM)实现了一个非线程型的、预派生的web服务器，它的工作方式类似于Apache 1.3。它适合于没有线程安全库，需要避免线程兼容性问题的系统。它是要求将每个请求相互独立的情况下最好的MPM，这样若一个请求出现问题就不会影响到其他请求。</p>
<p>这个MPM具有很强的自我调节能力，只需要很少的配置指令调整。最重要的是将MaxClients设置为一个足够大的数值以处理潜在的请求高峰，同时又不能太大，以致需要使用的内存超出物理内存的大小。</p>
<p>worker模式<br />
此多路处理模块(MPM)使网络服务器支持混合的多线程多进程。由于使用线程来处理请求，所以可以处理海量请求，而系统资源的开销小于基于进程的MPM。但是，它也使用了多进程，每个进程又有多个线程，以获得基于进程的MPM的稳定性。</p>
<p><strong>【apache配置参数备注】</strong><br />
1、KeepAlive On/Off<br />
KeepAlive指的是保持连接活跃，类似于Mysql的永久连接。换一句话说，如果将KeepAlive设置为On，那么来自同一客户端的请求就不需要再一次连接，避免每次请求都要新建一个连接而加重服务器的负担。一般情况下，图片较多的网站应该把KeepAlive设为On。</p>
<p>2、KeepAliveTimeOut number<br />
如果第二次请求和第一次请求之间超过KeepAliveTimeOut的时间的话，第一次连接就会中断，再新建第二个连接。它的设置一般考虑图片或者JS等文件两次请求间隔，我的设置经验为3-5秒。</p>
<p>3、MaxKeepAliveRequests 100<br />
一次连接可以进行的HTTP请求的最大请求次数。将其值设为0将支持在一次连接内进行无限次的传输请求。事实上没有客户程序在一次连接中请求太多的页面，通常达不到这个上限就完成连接了。</p>
<p>4、StartServers        10<br />
设置服务器启动时建立的子进程数量。因为子进程数量动态的取决于负载的轻重,所有一般没有必要调整这个参数。</p>
<p>5、MinSpareServers     10<br />
设置空闲子进程的最小数量。所谓空闲子进程是指没有正在处理请求的子进程。如果当前空闲子进程数少于MinSpareServers ,那么Apache将以最大每秒一个的速度产生新的子进程。只有在非常繁忙机器上才需要调整这个参数。将此参数设的太大通常是一个坏主意。</p>
<p>6、MaxSpareThreads     75<br />
设置空闲子进程的最大数量。如果当前有超过MaxSpareServers数量的空闲子进程,那么父进程将杀死多余的子进程。只有在非常繁忙机器上才需要调整这个参数。将此参数设的太大通常是一个坏主意。如果你将该指令的值设置为比MinSpareServers小,Apache将会自动将其修改成”MinSpareServers+1″。</p>
<p>7、ServerLimit       2000<br />
服务器允许配置的进程数上限。只有在你需要将MaxClients设置成高于默认值256的时候才需要使用。要将此指令的值保持和MaxClients一样。修改此指令的值必须完全停止服务后再启动才能生效，以restart方式重启动将不会生效。</p>
<p>8、MaxClients        256<br />
用于伺服客户端请求的最大请求数量（最大子进程数），任何超过MaxClients限制的请求都将进入等候队列。默认值是256，如果要提高这个值必须同时提高ServerLimit的值。笔者建议将初始值设为(以Mb为单位的最大物理内存/2),然后根据负载情况进行动态调整。比如一台4G内存的机器，那么初始值就是4000/2=2000。</p>
<p>9、MaxRequestsPerChild  0<br />
apache.exe进程包括一个是父进程、一个是子进程，父进程接到访问请求后，将请求交由子进程处理。MaxRequestsPerChild这个指令设定一个独立的子进程将能处理的请求数量。在处理“MaxRequestsPerChild 数字”个请求之后，子进程将会被父进程终止，这时候子进程占用的内存就会释放，如果再有访问请求，父进程会重新产生子进程进行处理。 如果MaxRequestsPerChild缺省设为0(无限)或较大的数字(例如10000以上)可以使每个子进程处理更多的请求，不会因为不断终止、启动子进程降低访问效率，但MaxRequestsPerChild设置为0时，如果占用了200～300M内存，即使负载下来时占用的内存也不会减少。内存较大的服务器可以设置为0或较大的数字。内存较小的服务器不妨设置成30、50、100，以防内存溢出。所以一般情况下，如果你发现服务器的内存直线上升，建议修改该参数试试。</p>
<p> </p>
<p><strong>【apache的Rewrite】<br />
</strong>1、是否支持使用.htaccess文件来定义或者修改apache的设置,是否支持目录列表</p>
<div>
<div style="font-size: 8pt; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;"><span style="color: #606060;">   1:</span> <span style="color: #0000ff;">&lt;</span><span style="color: #800000;">Directory</span> <span style="color: #0000ff;">/&gt;</span></pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;"><span style="color: #606060;">   2:</span>     Options indexes FollowSymLinks</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;"><span style="color: #606060;">   3:</span> AllowOverride All</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;"><span style="color: #606060;">   4:</span> <span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">Directory</span><span style="color: #0000ff;">&gt;</span></pre>
<p> </p></div>
</div>
<p>2、rewrite <a href="http://ourapache.com/archives/tag/%e9%85%8d%e7%bd%ae" class="st_tag internal_tag" rel="tag" title="标签 配置 下的日志">配置</a></p>
<p>RewriteEngine on</p>
<p>RewriteCond $1 !^(index.php|images|robots.txt) #定义重写发生的条件</p>
<p>RewriteRule ^(.*)$ /index.php/$1 [L]</p>
<p>RewriteLog D:/lib/rewrite.<a href="http://ourapache.com/archives/tag/log" class="st_tag internal_tag" rel="tag" title="标签 log 下的日志">log</a> #设置rewrite日志文件，主要用来rewrite调试</p>
<p>RewriteLogLevel 3 #设置rewrite日志文件记录的等级，主要用来rewrite调试</p>
<p><strong></strong></p>
<p>【apache的</p>
<p><a onclick="pageTracker._trackPageview ('/outbound/www.php-oa.com');" href="http://www.php-oa.com/2008/08/20/gzipsquid.html"><strong><span style="color: #00abff;">Gzip</span></strong></a><strong>功能】</strong></p>
<p>gzip可以级大的加速网站.有时压缩比率高到80%,近来测试了一下,最少都有40%以上,还是相当不错的.在Apache2之后的版本，模块名不叫gzip，而叫mod_deflate</p>
<p>如果要开启gzip的话,一定要打开下面二个模块.</p>
<p>LoadModule headers_module modules/mod_headers.so</p>
<p>LoadModule deflate_module modules/mod_deflate.so</p>
<p>设置压缩比率，取值范围在 1(最低) 到 9(最高)之间,不建议设置太高，虽然有很高的压缩率，但是占用更多的CPU资源.</p>
<div>
<div style="font-size: 8pt; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;"><span style="color: #606060;">   1:</span> DeflateCompressionLevel 3</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;"><span style="color: #606060;">   2:</span> AddOutputFilter DEFLATE html xml php js css</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;"><span style="color: #606060;">   3:</span> <span style="color: #0000ff;">&lt;</span><span style="color: #800000;">Location</span> <span style="color: #0000ff;">/&gt;</span></pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;"><span style="color: #606060;">   4:</span> SetOutputFilter DEFLATE</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;"><span style="color: #606060;">   5:</span> BrowserMatch ^Mozilla/4 <a href="http://ourapache.com/archives/tag/gzip" class="st_tag internal_tag" rel="tag" title="标签 gzip 下的日志">gzip</a>-only-text/html</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;"><span style="color: #606060;">   6:</span> BrowserMatch ^Mozilla/4.0[678] no-gzip</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;"><span style="color: #606060;">   7:</span> BrowserMatch bMSIE !no-gzip !gzip-only-text/html</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;"><span style="color: #606060;">   8:</span> SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;"><span style="color: #606060;">   9:</span> SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;"><span style="color: #606060;">  10:</span> SetEnvIfNoCase Request_URI .(?:pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary</pre>
<p> </p></div>
</div>
<p>Header append Vary User-Agent env=!dont-vary #对代理的设置</p>
<p>&lt;/Location&gt;</p>
<p>下面二个测试网站</p>
<p>http://www.whatsmyip.org/mod_gzip_test/</p>
<p>http://www.gidnetwork.com/tools/gzip-test.php</p>
<p>测试数据对css</p>
<p>Original Size: 44 KB</p>
<p>Gzipped Size: 10 KB</p>
<p>Data Savings: 77.27%</p>
<p>测试数据js</p>
<p>Original Size: 6 KB</p>
<p>Gzipped Size: 2 KB</p>
<p>Data Savings: 66.67%</p>
<p>测试数据php</p>
<p>Original Size: 62 KB</p>
<p>Gzipped Size: 15 KB</p>
<p>Data Savings: 75.81%</p>
<p>上面只是随机拿的几个数据,看的出来,使用了gzip压缩后文件小多了.</p>
<p>另外讲一下,有关squid对gzip的处理</p>
<p>在squid中，对同一个URL只保留一份缓存。对于如果不同browser(是否支持压缩)如果频繁交替访问,例如:对某个cache住的目标，一个http/1.0请求可能会导致squid强制更新其缓存。但接下来的另一个http/1.1请求又会导致squid再次更新缓存。这样那squid缓存数据就要频繁更新,这就极大的降低了cache命中率。</p>
<p>不过还好,现实环境中不支持压缩的browser毕竟是很少的情况,所以对于缓存命中率的降低很有限.</p>
<h3  class="related_post_title">相关文章</h3><ul class="related_post"><li>2010年03月9号 -- <a href="http://ourapache.com/archives/318" title="Apache2中俩种设置PHP的异同">Apache2中俩种设置PHP的异同</a></li><li>2009年02月26号 -- <a href="http://ourapache.com/archives/184" title="Apache日志文件（配置和管理）">Apache日志文件（配置和管理）</a></li><li>2009年02月10号 -- <a href="http://ourapache.com/archives/123" title="Apache高级配置中文详解">Apache高级配置中文详解</a></li><li>2009年02月10号 -- <a href="http://ourapache.com/archives/109" title="谈谈Apache的优化">谈谈Apache的优化</a></li><li>2009年01月22号 -- <a href="http://ourapache.com/archives/66" title="Apache配置文件(httpd.conf)中文说明">Apache配置文件(httpd.conf)中文说明</a></li><li>2008年12月27号 -- <a href="http://ourapache.com/archives/9" title="apache禁止使用IP访问的实现方法">apache禁止使用IP访问的实现方法</a></li><li>2008年12月27号 -- <a href="http://ourapache.com/archives/7" title="apache中.htaccess的功能及写法">apache中.htaccess的功能及写法</a></li><li>2008年12月25号 -- <a href="http://ourapache.com/archives/1" title="使用gzip将你的Apache速度提高十倍">使用gzip将你的Apache速度提高十倍</a></li></ul>
	标签：<a href="http://ourapache.com/archives/category/advanced" title="Apache高级应用" rel="tag">Apache高级应用</a>, <a href="http://ourapache.com/archives/tag/%e4%bc%98%e5%8c%96" title="优化" rel="tag">优化</a>, <a href="http://ourapache.com/archives/tag/%e9%85%8d%e7%bd%ae" title="配置" rel="tag">配置</a><br />
]]></content:encoded>
			<wfw:commentRss>http://ourapache.com/archives/3/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用gzip将你的Apache速度提高十倍</title>
		<link>http://ourapache.com/archives/1</link>
		<comments>http://ourapache.com/archives/1#comments</comments>
		<pubDate>Thu, 25 Dec 2008 08:41:19 +0000</pubDate>
		<dc:creator>OurApache</dc:creator>
				<category><![CDATA[Apache初级应用]]></category>
		<category><![CDATA[gzip]]></category>
		<category><![CDATA[配置]]></category>

		<guid isPermaLink="false">http://www.ourapache.com/?p=1</guid>
		<description><![CDATA[你知道吗，如果你的web server是采用apache那你就有机会通过安装一个软件模块提高你的网站访问速度，最大能有10倍之多！这可不是吹牛，你看看原理就明白了。这个神通广大的模块就是mod_gzip. 它通过用和gzip一样的压缩算法对apache发出的页面进行压缩，可能的话可以把页面压缩成为原来大小的十份之一。哪，如果10K的页面只要传1K这不就是提速10倍嘛。当然一般网页只可以达到3-6倍。那也很不错。对吧。连google这样一个大的网站都采用这个技术。你还不快跟上？]]></description>
			<content:encoded><![CDATA[<p>你知道吗，如果你的web server是采用apache那你就有机会通过安装一个软件模块提高你的网站访问速度，最大能有10倍之多！这可不是吹牛，你看看原理就明白了。这个神通广大的模块就是mod_<a href="http://ourapache.com/archives/tag/gzip" class="st_tag internal_tag" rel="tag" title="标签 gzip 下的日志">gzip</a>. 它通过用和gzip一样的压缩算法对apache发出的页面进行压缩，可能的话可以把页面压缩成为原来大小的十份之一。哪，如果10K的页面只要传1K这不就是提速10倍嘛。当然一般网页只可以达到3-6倍。那也很不错。对吧。连google这样一个大的网站都采用这个技术。你还不快跟上？</p>
<p>这样一个好东东，来来来，我告诉你如何安装：分3步，1、下载，2、修改配置，3、测试。</p>
<p><strong>1.下载</strong><br />
到http://www.remotecommunications.com/apache/mod_gzip 下载mod_gzip.c 还有它的补丁。</p>
<p><strong>2.安装, <a href="http://ourapache.com/archives/tag/%e9%85%8d%e7%bd%ae" class="st_tag internal_tag" rel="tag" title="标签 配置 下的日志">配置</a></strong><br />
把mod_gzip放到你的apache的源代码目录下，新建一个mod_gzip目录如果需要补丁(针对1.3.17.la版) 还需运行:<br />
patch mod_gizp.c<br />
按你需要，在配置中选择动态DSO或静态编译进apache系统。如何处理在README中讲得很清楚，如-add-module=mod_gzip.c, make,make install等等。这里不多讲。</p>
<p>把下列配置加入httpd.conf尾部。</p>
<p># MOD_GZIP configuration<br />
mod_gzip_on Yes<br />
mod_gzip_minimum_file_size 1002<br />
mod_gzip_maximum_file_size 0<br />
mod_gzip_maximum_inmem_size 60000<br />
mod_gzip_item_include mime “application/x-httpd-php”<br />
mod_gzip_item_include mime text/*<br />
mod_gzip_item_include mime “httpd/unix-directory”<br />
mod_gzip_dechunk Yes<br />
mod_gzip_temp_dir “/tmp”<br />
mod_gzip_keep_workfiles No<br />
mod_gzip_item_include file “.php3$”<br />
mod_gzip_item_include file “.txt$”<br />
mod_gzip_item_include file “.html$”<br />
mod_gzip_item_exclude file “.css$”<br />
mod_gzip_item_exclude file “.js$”</p>
<p>在保存修改后运行<br />
…/bin/apachectl configtest确保配置修改无误。<br />
然后用 apachectl restart 指令重起服务。</p>
<p><strong>3.修改，测试</strong><br />
在宣布做好了之前在测试一下是优秀程序员的习惯。为了尽量不影响你的用户的浏览，我们可以用把新的apache驱动在8080端口上或者用指令控制mod_gzip起作用的目录,而不是一下子全用mod_gzip.<br />
用法如下：</p>
<p>MOD_GZIP configuration</p>
<p>你再用IE4或netscape认真的全面测试一遍，没有问题后你就可以让你的用户很开心的发现&#8217;XX网站现在好快哦。&#8217;</p>
<p>Mod_gzip真的很神奇，100K的HTML大文档只要12K就可以传到用户端了。越先采用这个技术你的用户对你的网站的高速度印象就越深。不过有所得必有所失，由于解压是在客户端进行的，效果和用户的浏览器有一定关系。笔者测试了MSIE4,5,5.5,netscape 4.5 , 6都运行得很好. 不过java,jpg,gif等等是没法压缩的。</p>
<h3  class="related_post_title">相关文章</h3><ul class="related_post"><li>2010年03月9号 -- <a href="http://ourapache.com/archives/318" title="Apache2中俩种设置PHP的异同">Apache2中俩种设置PHP的异同</a></li><li>2009年02月26号 -- <a href="http://ourapache.com/archives/184" title="Apache日志文件（配置和管理）">Apache日志文件（配置和管理）</a></li><li>2009年02月10号 -- <a href="http://ourapache.com/archives/123" title="Apache高级配置中文详解">Apache高级配置中文详解</a></li><li>2009年02月7号 -- <a href="http://ourapache.com/archives/94" title="使用gzip压缩来压缩网页之apache的相关配置">使用gzip压缩来压缩网页之apache的相关配置</a></li><li>2009年02月6号 -- <a href="http://ourapache.com/archives/72" title="gzip 与 deflate">gzip 与 deflate</a></li><li>2009年01月22号 -- <a href="http://ourapache.com/archives/66" title="Apache配置文件(httpd.conf)中文说明">Apache配置文件(httpd.conf)中文说明</a></li><li>2008年12月27号 -- <a href="http://ourapache.com/archives/9" title="apache禁止使用IP访问的实现方法">apache禁止使用IP访问的实现方法</a></li><li>2008年12月27号 -- <a href="http://ourapache.com/archives/7" title="apache中.htaccess的功能及写法">apache中.htaccess的功能及写法</a></li><li>2008年12月27号 -- <a href="http://ourapache.com/archives/3" 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/gzip" title="gzip" rel="tag">gzip</a>, <a href="http://ourapache.com/archives/tag/%e9%85%8d%e7%bd%ae" title="配置" rel="tag">配置</a><br />
]]></content:encoded>
			<wfw:commentRss>http://ourapache.com/archives/1/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

