<?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>ctusky &#187; apache</title>
	<atom:link href="http://www.ctusky.com/archives/tag/apache/feed" rel="self" type="application/rss+xml" />
	<link>http://www.ctusky.com</link>
	<description>您可以一次不来,但不可能只来一次.</description>
	<lastBuildDate>Thu, 03 Jun 2010 16:00:54 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Apache代理IIS共用80的实测方法</title>
		<link>http://www.ctusky.com/archives/apache-proxy-iis-measured-approach.html</link>
		<comments>http://www.ctusky.com/archives/apache-proxy-iis-measured-approach.html#comments</comments>
		<pubDate>Sat, 12 Dec 2009 11:19:35 +0000</pubDate>
		<dc:creator>ctusky</dc:creator>
				<category><![CDATA[服务器]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[iis]]></category>
		<category><![CDATA[端口]]></category>

		<guid isPermaLink="false">http://www.ctusky.com/?p=253</guid>
		<description><![CDATA[Apache和IIS共用80端口，很多情况下为了实现某些目的，又或者局限于什么因素，需要一台服务器装多httpd软件，最常见的莫过于Apache和IIS了。本文的意图就是记录如何让Apache代理IIS，使外网可以共用一个端口访问。
需要的软件：Apache、IIS。无语……
假设你想外网使用Apache的服务并且使用80端口来访问网站，那么httpd.conf里就设置“Listren 80”；然后把需要代理的IIS站点，设置成任意（80等已用端口除外）端口，设置好后开始配置Apache的httpd.conf文件。以下是我实测，可能和网上其他的有一点点区别，但是我是可以实现了，下面列出几个关键部分。

Listren 80
#别人总是说要加IP在前面，我是没加
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
#这两句前的井号去掉，我只用到了http
#之后我设置了通过IP访问的处理方法www.ctusky.com
NameVirtualHost *:80
&#60;VirtualHost *:80&#62;
    DocumentRoot &#34;x:/html/ipweb&#34;
    ServerName localhost
    ServerName *
&#60;/VirtualHost&#62;
#然后就是设置代理了，假设IIS里设置的被代理端口为81
&#60;VirtualHost *:80&#62;
ServerName a.com
ProxyPass / http://b.com:81/
ProxyPassReverse / http://b.com:81/
&#60;/VirtualHost&#62;
#记得换域名

通过上面的设置，当你访问a.com时，Apache就会把他交给由IIS工作的b.com的81端口了，前提是这个b.com:81能被访问到，如果你是通过内网端口映射，且不想那么麻烦，那么就定义一下自己的HOSTS表。好了，完稿。
]]></description>
			<content:encoded><![CDATA[<p>Apache和IIS共用80端口，很多情况下为了实现某些目的，又或者局限于什么因素，需要一台服务器装多httpd软件，最常见的莫过于Apache和IIS了。本文的意图就是记录如何让Apache代理IIS，使外网可以共用一个端口访问。</p>
<p>需要的软件：<a href="http://httpd.apache.org/" target="_blank">Apache</a>、<a href="http://down.cnzz.cn/Info/269.aspx" target="_blank">IIS</a>。无语……</p>
<p>假设你想外网使用Apache的服务并且使用80端口来访问网站，那么httpd.conf里就设置“Listren 80”；然后把需要代理的IIS站点，设置成任意（80等已用端口除外）端口，设置好后开始配置Apache的httpd.conf文件。以下是我实测，可能和网上其他的有一点点区别，但是我是可以实现了，下面列出几个关键部分。<span id="more-253"></span></p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">Listren 80
#别人总是说要加IP在前面，我是没加
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
#这两句前的井号去掉，我只用到了http
#之后我设置了通过IP访问的处理方法www.ctusky.com
NameVirtualHost *:80
&lt;VirtualHost *:80&gt;
    DocumentRoot &quot;x:/html/ipweb&quot;
    ServerName localhost
    ServerName *
&lt;/VirtualHost&gt;
#然后就是设置代理了，假设IIS里设置的被代理端口为81
&lt;VirtualHost *:80&gt;
ServerName a.com
ProxyPass / http://b.com:81/
ProxyPassReverse / http://b.com:81/
&lt;/VirtualHost&gt;
#记得换域名</pre></div></div>

<p>通过上面的设置，当你访问a.com时，Apache就会把他交给由IIS工作的b.com的81端口了，前提是这个b.com:81能被访问到，如果你是通过内网端口映射，且不想那么麻烦，那么就定义一下自己的HOSTS表。好了，完稿。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ctusky.com/archives/apache-proxy-iis-measured-approach.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>配置Apache支持.htaccess</title>
		<link>http://www.ctusky.com/archives/apache-configuration-support-htaccess.html</link>
		<comments>http://www.ctusky.com/archives/apache-configuration-support-htaccess.html#comments</comments>
		<pubDate>Mon, 20 Jul 2009 09:01:35 +0000</pubDate>
		<dc:creator>ctusky</dc:creator>
				<category><![CDATA[服务器]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[htaccess]]></category>

		<guid isPermaLink="false">http://www.ctusky.com/?p=142</guid>
		<description><![CDATA[　　在给出如何配置Apache支持.htaccess文件之前，首先申明一下：使用.htaccess文件，会降低httpd服务器的一点性能。
配置方法
找到Apache的httpd.conf配置文件，编辑器打开。

//找到
&#60;Directory /&#62;
　　Options FollowSymLinks
　　AllowOverride None
&#60;/Directory&#62;
&#160;
//修改为
&#160;
&#60;Directory /&#62;
　　Options FollowSymLinks
　　AllowOverride All
&#60;/Directory&#62;
&#160;
//就可以了
&#160;
/*
如果需要使用.htaccess以外的其他文件名，可以用AccessFileName指令来改变。
例如，需要使用.config ，则可以在服务器配置文件中按以下方法配置：
*/
AccessFileName .config

　　通常，.htaccess文件使用的配置语法和主配置文件一样。AllowOverride指令按类别决定了.htaccess文件中哪些指令才是有效的。
(不)使用.htaccess文件的场合
　　一般情况下，不应该使用.htaccess文件，除非你对主配置文件没有访问权限。有一种很常见的误解，认为用户认证只能通过.htaccess文件实现，其实并不是这样，把用户认证写在主配置文件中是完全可行的，而且是一种很好的方法。
　　.htaccess文件应该被用在内容提供者需要针对特定目录改变服务器的配置而又没有root权限的情况下。如果服务器管理员不愿意频繁修改配置，则可以允许用户通过.htaccess文件自己修改配置，尤其是ISP在同一个机器上运行了多个用户站点，而又希望用户可以自己改变配置的情况下。
　　虽然如此，一般都应该尽可能地避免使用.htaccess文件。任何希望放在.htaccess文件中的配置，都可以放在主配置文件的段中，而且更高效。
避免使用.htaccess文件有两个主要原因。
　　首先是性能。如果AllowOverride启用了.htaccess文件，则Apache需要在每个目录中查找.htaccess文件，因此，无论是否真正用到，启用.htaccess都会导致性能的下降。另外，对每一个请求，都需要读取一次.htaccess文件。
　　还有，Apache必须在所有上级的目录中查找.htaccess文件，以使所有有效的指令都起作用，所以，如果请求/ctusky/ctu/sky中的页面，Apache必须查找以下文件：

/.htaccess
/ctusky/.htaccess
/ctusky/ctu/.htaccess
/ctusky/ctu/sky/.htaccess

　　一共就要访问4个额外的文件，就算这些文件都不存在，这也是本文开始说会影响服务器的一点性能的原因。
　　其次是安全。这样会允许用户自己修改服务器的配置，这可能会导致某些意想不到的修改，所以请认真考虑是否应当给予用户这样的特权。
]]></description>
			<content:encoded><![CDATA[<p>　　在给出如何配置Apache支持.htaccess文件之前，首先申明一下：使用.htaccess文件，会降低httpd服务器的一点性能。</p>
<h3>配置方法</h3>
<p>找到Apache的httpd.conf配置文件，编辑器打开。<span id="more-142"></span></p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">//找到
&lt;Directory /&gt;
　　Options FollowSymLinks
　　AllowOverride None
&lt;/Directory&gt;
&nbsp;
//修改为
&nbsp;
&lt;Directory /&gt;
　　Options FollowSymLinks
　　AllowOverride All
&lt;/Directory&gt;
&nbsp;
//就可以了
&nbsp;
/*
如果需要使用.htaccess以外的其他文件名，可以用AccessFileName指令来改变。
例如，需要使用.config ，则可以在服务器配置文件中按以下方法配置：
*/
AccessFileName .config</pre></div></div>

<p>　　通常，.htaccess文件使用的配置语法和主配置文件一样。AllowOverride指令按类别决定了.htaccess文件中哪些指令才是有效的。</p>
<h3>(不)使用.htaccess文件的场合</h3>
<p>　　一般情况下，不应该使用.htaccess文件，除非你对主配置文件没有访问权限。有一种很常见的误解，认为用户认证只能通过.htaccess文件实现，其实并不是这样，把用户认证写在主配置文件中是完全可行的，而且是一种很好的方法。<br />
　　.htaccess文件应该被用在内容提供者需要针对特定目录改变服务器的配置而又没有root权限的情况下。如果服务器管理员不愿意频繁修改配置，则可以允许用户通过.htaccess文件自己修改配置，尤其是ISP在同一个机器上运行了多个用户站点，而又希望用户可以自己改变配置的情况下。<br />
　　虽然如此，一般都应该尽可能地避免使用.htaccess文件。任何希望放在.htaccess文件中的配置，都可以放在主配置文件的<Directory>段中，而且更高效。<br />
避免使用.htaccess文件有两个主要原因。<br />
　　首先是性能。如果AllowOverride启用了.htaccess文件，则Apache需要在每个目录中查找.htaccess文件，因此，无论是否真正用到，启用.htaccess都会导致性能的下降。另外，对每一个请求，都需要读取一次.htaccess文件。<br />
　　还有，Apache必须在所有上级的目录中查找.htaccess文件，以使所有有效的指令都起作用，所以，如果请求/ctusky/ctu/sky中的页面，Apache必须查找以下文件：</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">/.htaccess
/ctusky/.htaccess
/ctusky/ctu/.htaccess
/ctusky/ctu/sky/.htaccess</pre></div></div>

<p>　　一共就要访问4个额外的文件，就算这些文件都不存在，这也是本文开始说会影响服务器的一点性能的原因。<br />
　　其次是安全。这样会允许用户自己修改服务器的配置，这可能会导致某些意想不到的修改，所以请认真考虑是否应当给予用户这样的特权。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ctusky.com/archives/apache-configuration-support-htaccess.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>apache下URL无扩展名方法一则</title>
		<link>http://www.ctusky.com/archives/url-not-under-the-apache-extension-methods.html</link>
		<comments>http://www.ctusky.com/archives/url-not-under-the-apache-extension-methods.html#comments</comments>
		<pubDate>Mon, 20 Jul 2009 05:31:00 +0000</pubDate>
		<dc:creator>ctusky</dc:creator>
				<category><![CDATA[服务器]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[htaccess]]></category>

		<guid isPermaLink="false">http://www.ctusky.com/?p=139</guid>
		<description><![CDATA[一直很羡慕Google，Yahoo!，baidu那种URL中不带扩展名而是直接跟问号的方式，曾经有看到过类似的方法（PHP方式的），但是时间太长找不到怎么弄的了，也不确定自己的记忆是否正确，无耐之下，想想就用apache的功能吧。 　　这里需要注意的是我所说的是不带扩展名的PHP方式（.com/s?ctusky），而不是伪静态（.com/s/ctusky），并且不是纯PHP方式，如果是你需要的，那就接着向下看吧，当然，那些大引擎估计不会用这个方法的。 
　　如果你是apache的虚拟主机，首先确定他支持.htaccess文件（apache不支持.htaccess看这里）。然后在.htaccess文件中加入如下代码：

&#60;files ctusky=&#34;&#34;&#62;
            &#60;br/&#62; ForceType application/x-httpd-php&#60;br/&#62;          &#60;/files&#62;
&#60;br/&#62;/*&#60;br/&#62;这里解释一下上面代码的意思，&#60;br/&#62;先设定你的PHP文件的文件名为ctusky.php，然后重命名，把.php去掉。&#60;br/&#62;这时你的文件名就是ctusky了，而不是ctusky.php&#60;br/&#62;上面代码的意思就是告诉apache，本目录内的ctusky文件，把他当作PHP来解析。&#60;br/&#62;*/

接下来就很简单了，该怎么弄就怎么弄了。又是记下一条，完稿。
]]></description>
			<content:encoded><![CDATA[<p>一直很羡慕<a href="http://www.google.cn/search?hl=zh-CN&amp;q=ctusky" target="_blank" rel="nofollow">Google</a>，<a href="http://search.yahoo.com/search?p=ctusky.com&amp;fr=yfp-t-152&amp;toggle=1&amp;cop=mss&amp;ei=UTF-8&amp;fp_ip=CN&amp;vc=" target="_blank" rel="nofollow">Yahoo!</a>，<a href="http://www.baidu.com/s?wd=ctusky" target="_blank" rel="nofollow">baidu</a>那种URL中不带扩展名而是直接跟问号的方式，曾经有看到过类似的方法（PHP方式的），但是时间太长找不到怎么弄的了，也不确定自己的记忆是否正确，无耐之下，想想就用apache的功能吧。 <br/>　　这里需要注意的是我所说的是不带扩展名的PHP方式（.com/s?ctusky），而不是伪静态（.com/s/ctusky），并且不是纯PHP方式，如果是你需要的，那就接着向下看吧，当然，那些大引擎估计不会用这个方法的。 <br/><span id="more-139"></span></p>
<p>　　如果你是apache的虚拟主机，首先确定他支持.htaccess文件（<a href="http://www.ctusky.com/archives/apache-configuration-support-htaccess.html" target="_blank">apache不支持.htaccess看这里</a>）。然后在.htaccess文件中加入如下代码：</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">&lt;files ctusky=&quot;&quot;&gt;
            &lt;br/&gt; ForceType application/x-httpd-php&lt;br/&gt;          &lt;/files&gt;
&lt;br/&gt;/*&lt;br/&gt;这里解释一下上面代码的意思，&lt;br/&gt;先设定你的PHP文件的文件名为ctusky.php，然后重命名，把.php去掉。&lt;br/&gt;这时你的文件名就是ctusky了，而不是ctusky.php&lt;br/&gt;上面代码的意思就是告诉apache，本目录内的ctusky文件，把他当作PHP来解析。&lt;br/&gt;*/</pre></div></div>

<p>接下来就很简单了，该怎么弄就怎么弄了。又是记下一条，完稿。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ctusky.com/archives/url-not-under-the-apache-extension-methods.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>启用apache2的gzip功能</title>
		<link>http://www.ctusky.com/archives/open-gzip-function-for-apache.html</link>
		<comments>http://www.ctusky.com/archives/open-gzip-function-for-apache.html#comments</comments>
		<pubDate>Sat, 18 Jul 2009 02:49:06 +0000</pubDate>
		<dc:creator>ctusky</dc:creator>
				<category><![CDATA[服务器]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[gzip]]></category>

		<guid isPermaLink="false">http://www.ctusky.com/?p=133</guid>
		<description><![CDATA[    gzip功能能在消耗一点点CPU使用率的情况下，大幅减少网页在传输过程中的带宽（大约60%-75%）。最近一直在折腾ctusky网站打开速度的事情，所有关到打开速度的我总是非常关心，下面就来介绍一下apache2下开启gzip压缩的方法。
正确区分mod_deflate和mod_gzip
    所谓gzip，其实在早期的apache 1.x系列版本中没有内建网页压缩技术，所以才需要去gzip压缩，apache2官方在开发的时候，就已经把网页压缩考虑进去，内建了mod_deflate模块，所以apache2就不需要使用到mod_gzip了，这两者的工作原理是类似的，还有启用mod_deflate这个网页压缩的模块，功能和效率和mod_gzip是差不多的，甚至还好一些，就不需要再用mod_gzip模块了。
开启apache2的gzip
编译安装APACHE2.2.XX: 编译源码时要加上 &#8211;enable-deflate=shared
在http.conf里会找到如下行; 如果没有请加上

LoadModule deflate_module modules/mod_deflate.so

如果是YUM RPM安装的话就自动开启了.压缩比例:约能压缩下70％的体积
更多定制
开启了压缩功能.可以很好的使用了,如果你还想更详尽的定制的话,请看下面:
可以在http.conf后面加上这一段进行定制：(如非必要,用默认的就好了)

&#60;ifmodule mod_deflate.c&#62;
DeflateCompressionLevel 9
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php
AddOutputFilter DEFLATE js css
&#60;/ifmodule&#62;

    这样可以压缩一般网页中会用到的html、xml、php、css、js等格式档案输出，虽然会占用掉服务器处理器的一点点处理器时间，浏览者在接收 网页数据时也会消耗极短暂的一点点处理器时间，不过却可以大幅减少数据传输量，减少网络带宽被吃掉的情形。
    DeflateCompressionLevel 9是指压缩程度的等级，从1到9，9是最高等级。据了解，这样做最高可以减少8成大小的传输量（看档案内容而定），最少也能够节省一半。
    DeflateCompressionLevel 预设可以采用 6 这个数值，以维持耗用处理器效能与网页压缩质量的平衡。
补充
    至于已经是压缩过的图片格式如jpg，音乐档案如mp3、压缩文件如zip之类的，就没必要再压缩了，因为这种档案你一开放服务器传输时压缩，处理器时间会跑不完，而且就算你跑完，大小也一样，如果使用PHP函数之类压缩过的文件，httpd服务是不会再次压缩的，系统级别的处理，总会比应用级别的效率高吧。

Apache 的 mod_deflate 和 gzip compression 的对比.
&#160;
* 不使用任何压缩: 430KB
* [...]]]></description>
			<content:encoded><![CDATA[<p>    gzip功能能在消耗一点点CPU使用率的情况下，大幅减少网页在传输过程中的带宽（大约60%-75%）。最近一直在折腾ctusky网站打开速度的事情，所有关到打开速度的我总是非常关心，下面就来介绍一下apache2下开启gzip压缩的方法。</p>
<h3>正确区分mod_deflate和mod_gzip</h3>
<p>    所谓gzip，其实在早期的apache 1.x系列版本中没有内建网页压缩技术，所以才需要去gzip压缩，apache2官方在开发的时候，就已经把网页压缩考虑进去，内建了mod_deflate模块，所以apache2就不需要使用到mod_gzip了，这两者的工作原理是类似的，还有启用mod_deflate这个网页压缩的模块，功能和效率和mod_gzip是差不多的，甚至还好一些，就不需要再用mod_gzip模块了。<span id="more-133"></span></p>
<h3>开启apache2的gzip</h3>
<p>编译安装APACHE2.2.XX: 编译源码时要加上 &#8211;enable-deflate=shared<br />
在http.conf里会找到如下行; 如果没有请加上</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">LoadModule deflate_module modules/mod_deflate.so</pre></div></div>

<p>如果是YUM RPM安装的话就自动开启了.压缩比例:约能压缩下70％的体积</p>
<h3>更多定制</h3>
<p>开启了压缩功能.可以很好的使用了,如果你还想更详尽的定制的话,请看下面:<br />
可以在http.conf后面加上这一段进行定制：(如非必要,用默认的就好了)</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">&lt;ifmodule mod_deflate.c&gt;
DeflateCompressionLevel 9
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php
AddOutputFilter DEFLATE js css
&lt;/ifmodule&gt;</pre></div></div>

<p>    这样可以压缩一般网页中会用到的html、xml、php、css、js等格式档案输出，虽然会占用掉服务器处理器的一点点处理器时间，浏览者在接收 网页数据时也会消耗极短暂的一点点处理器时间，不过却可以大幅减少数据传输量，减少网络带宽被吃掉的情形。<br />
    DeflateCompressionLevel 9是指压缩程度的等级，从1到9，9是最高等级。据了解，这样做最高可以减少8成大小的传输量（看档案内容而定），最少也能够节省一半。<br />
    DeflateCompressionLevel 预设可以采用 6 这个数值，以维持耗用处理器效能与网页压缩质量的平衡。</p>
<h3>补充</h3>
<p>    至于已经是压缩过的图片格式如jpg，音乐档案如mp3、压缩文件如zip之类的，就没必要再压缩了，因为这种档案你一开放服务器传输时压缩，处理器时间会跑不完，而且就算你跑完，大小也一样，如果使用PHP函数之类压缩过的文件，httpd服务是不会再次压缩的，系统级别的处理，总会比应用级别的效率高吧。</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">Apache 的 mod_deflate 和 gzip compression 的对比.
&nbsp;
* 不使用任何压缩: 430KB
* 仅使用 gzip: 323KB
* 仅使用 Apache 的 deflate 模块: 247KB
* 同时使用 deflate 以及 gzip: 247KB
&nbsp;
至於时间的部份, 差异倒不是很大, 大约都是在 10-20 秒左右。</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.ctusky.com/archives/open-gzip-function-for-apache.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
