<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>无心呢喃 &#187; asp</title>
	<atom:link href="http://www.wxnn.net/tag/asp/feed" rel="self" type="application/rss+xml" />
	<link>http://www.wxnn.net</link>
	<description>记录自己的成长,分享所见,所学,所思!</description>
	<lastBuildDate>Sat, 31 Dec 2011 15:26:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>让apache反向代理iis及多域名设置</title>
		<link>http://www.wxnn.net/apache-iis-asp-php.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=apache-iis-asp-php</link>
		<comments>http://www.wxnn.net/apache-iis-asp-php.html#comments</comments>
		<pubDate>Sat, 07 Mar 2009 18:16:38 +0000</pubDate>
		<dc:creator>alon</dc:creator>
				<category><![CDATA[网站建设]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[asp]]></category>
		<category><![CDATA[iis]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.alonc.com/2009/03/08/apache-iis-asp-php.html</guid>
		<description><![CDATA[apache与iis是目前最流行，集合较强功能与扩展，拥有较高稳定性的两大服务器软件，但是两者分别支持php和asp程序， 之前研究了在iis6下建立全能主机的方法,，当然目前的iis 通过安装dll扩展能够支持php,但其执行效率没有apache高. 现在再尝试在iis6下安装apache,让两者共同工作. 因为在xp下安装iis，则不能支持多个虚拟主机绑定多个域名，因此，今天我们来探讨apache反向代理iis来支持asp，以及这种情况下的多个虚拟主机绑定域名的方法，以及在iis需要使用rewrite时该如何分别设置apache及iis的rewrite规则。 一、首先安装好apache及iis，设置apache端口80，iis端口81（这里只要别和apache冲突就行了） 二、找到apache的配置文件httpd.conf，去掉下面语句的注释 LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule proxy_ftp_module modules/mod_proxy_ftp.so 这样你的apache就可以以80端口做代理服务器啦 三、建立虚拟主机，以主机ip为123.0.0.1为例，以建立一个ip直接访问和两个不同域名绑定不同目录访问为例。 先建立默认虚拟主机，即直接输入ip时所能访问到的内容，在httpd.conf中添加如下内容（或找到类似内容进行修改）： #默认虚拟主机 NameVirtualHost 123.0.0.1 &#60;VirtualHost 123.0.0.1&#62; ServerName 123.0.0.1 DocumentRoot &#8220;D:/www/docs&#8221; &#60;Directory &#8220;D:/www/tdocs&#8220;&#62; Options FollowSymLinks IncludesNOEXEC Indexes DirectoryIndex index.html index.htm default.htm index.php default.php index.cgi default.cgi index.pl default.pl index.shtml AllowOverride None Order Deny,Allow Allow from all &#60;/Directory&#62; <a href='http://www.wxnn.net/apache-iis-asp-php.html'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>apache与iis是目前最流行，集合较强功能与扩展，拥有较高稳定性的两大服务器软件，但是两者分别支持php和asp程序，</p>
<p>之前研究了在iis6下建立全能主机的方法,，当然目前的iis 通过安装dll扩展能够支持php,但其执行效率没有apache高.</p>
<p>现在再尝试在iis6下安装apache,让两者共同工作.</p>
<p>因为在xp下安装iis，则不能支持多个虚拟主机绑定多个域名，因此，今天我们来探讨apache反向代理iis来支持asp，以及这种情况下的多个虚拟主机绑定域名的方法，以及在iis需要使用rewrite时该如何分别设置apache及iis的rewrite规则。<span id="more-174"></span></p>
<p>一、首先安装好apache及iis，设置apache端口80，iis端口81（这里只要别和apache冲突就行了）</p>
<p>二、找到apache的配置文件httpd.conf，去掉下面语句的注释</p>
<p>LoadModule proxy_module modules/mod_proxy.so</p>
<p>LoadModule proxy_connect_module modules/mod_proxy_connect.so</p>
<p>LoadModule proxy_http_module modules/mod_proxy_http.so</p>
<p>LoadModule proxy_ftp_module modules/mod_proxy_ftp.so</p>
<p>这样你的apache就可以以80端口做代理服务器啦</p>
<p>三、建立虚拟主机，以主机ip为123.0.0.1为例，以建立一个ip直接访问和两个不同域名绑定不同目录访问为例。</p>
<p>先建立默认虚拟主机，即直接输入ip时所能访问到的内容，在httpd.conf中添加如下内容（或找到类似内容进行修改）：</p>
<p>#默认虚拟主机</p>
<p>NameVirtualHost 123.0.0.1</p>
<p>&lt;VirtualHost 123.0.0.1&gt;</p>
<p>ServerName <span style="color: #ff0000;">123.0.0.1</span></p>
<p>DocumentRoot &#8220;<span style="color: #ff0000;">D:/www/docs</span>&#8221;</p>
<p>&lt;Directory &#8220;<span style="color: #ff0000;">D:/www/tdocs</span>&#8220;&gt;</p>
<p>Options FollowSymLinks IncludesNOEXEC Indexes</p>
<p>DirectoryIndex index.html index.htm default.htm index.php default.php index.cgi default.cgi index.pl default.pl index.shtml</p>
<p>AllowOverride None</p>
<p>Order Deny,Allow</p>
<p>Allow from all</p>
<p>&lt;/Directory&gt;</p>
<p>&lt;/VirtualHost&gt;</p>
<p>接着以域名a.b.c绑定至该ip下目录“d:\www\abc”为例</p>
<p>NameVirtualHost 123.0.0.1</p>
<p>&lt;VirtualHost 123.0.0.1&gt;</p>
<p>ServerName <span style="color: #ff0000;">a.b.c</span></p>
<p>DocumentRoot &#8220;<span style="color: #ff0000;">D:/www/abc</span>&#8221;</p>
<p>&lt;Directory &#8220;<span style="color: #ff0000;">D:/www/abc</span>&#8220;&gt;</p>
<p>Options FollowSymLinks IncludesNOEXEC Indexes</p>
<p>DirectoryIndex index.html index.htm default.htm index.php default.php index.cgi default.cgi index.pl default.pl index.shtml</p>
<p>AllowOverride None</p>
<p>Order Deny,Allow</p>
<p>Allow from all</p>
<p>&lt;/Directory&gt;</p>
<p>&lt;/VirtualHost&gt;</p>
<p>以此类推，绑定域名d.e.f至“D:\www\def”，同理如下</p>
<p>NameVirtualHost 123.0.0.1</p>
<p>&lt;VirtualHost 123.0.0.1&gt;</p>
<p>ServerName <span style="color: #ff0000;">d.e.f</span></p>
<p>DocumentRoot &#8220;<span style="color: #ff0000;">D:/www/def</span>&#8221;</p>
<p>&lt;Directory &#8220;<span style="color: #ff0000;">D:/www/def</span>&#8220;&gt;</p>
<p>Options FollowSymLinks IncludesNOEXEC Indexes</p>
<p>DirectoryIndex index.html index.htm default.htm index.php default.php index.cgi default.cgi index.pl default.pl index.shtml</p>
<p>AllowOverride None</p>
<p>Order Deny,Allow</p>
<p>Allow from all</p>
<p>&lt;/Directory&gt;</p>
<p>&lt;/VirtualHost&gt;</p>
<p>四、asp页面访问，apache反向代理iis，以及rewrite综合设置。</p>
<p>要在apache中访问asp，则需要用到proxypass，即在第二步中先打开的代理模块。</p>
<p>我们在第三步设置了两个虚拟主机“a.b.c”和“d.e.f”，下面以这两个域名绑定的主机为例说明在apache反向代理情况下，如何设置域名绑定，</p>
<p><strong><span style="font-size: large;">一种方法</span></strong>是加入以下标为“<span style="color: #0000ff;">蓝色</span>”的语句</p>
<p>NameVirtualHost 123.0.0.1</p>
<p>&lt;VirtualHost 123.0.0.1&gt;</p>
<p>ServerName <span style="color: #ff0000;">a.b.c</span></p>
<p>DocumentRoot &#8220;<span style="color: #ff0000;">D:/www/abc</span>&#8221;</p>
<p><span style="color: #0000ff;">proxypass　/test</span><span style="color: #ff0000;">(此红括号为说明：该“test”目录是你浏览器中输入的，例“http://a.b.c/test”)</span> <a href="http://123.0.0.1/"><span style="color: #0000ff;">http://123.0.0.1</span></a><span style="color: #0000ff;">：81/test<span style="color: #ff0000;">(此红括号为说明：该“test”是你iis中设置的虚拟目录，其中端口81为iis端口)</span></span></p>
<p><span style="color: #0000ff;">proxyreverse /test </span><a href="http://123.0.0.1/"><span style="color: #0000ff;">http://123.0.0.1</span></a><span style="color: #0000ff;">：81/test</span></p>
<p><span style="color: #ff0000;"># 请使用相同目录名,否则路径会出错，就是通过在浏览器中输入a.b.c,会访问“d:\www\abc\”根目录下文件；若输入a.b.c/test，就 会通过apache的反向代理访问至iis下的test目录（或test虚拟目录），以此类推，可以相应多设置需要执行asp的目录。</span></p>
<p><span style="color: #ff0000;">#特别注意，此段代码别加到<span style="color: #000000;">&lt;Directory &#8220;</span><span style="color: #ff0000;">D:/*</span><span style="color: #000000;">&#8220;&gt; 和&lt;/Directory&gt;之间。</span></span></p>
<p>&lt;Directory &#8220;<span style="color: #ff0000;">D:/www/abc</span>&#8220;&gt;</p>
<p>Options FollowSymLinks IncludesNOEXEC Indexes</p>
<p>DirectoryIndex index.html index.htm default.htm index.php default.php index.cgi default.cgi index.pl default.pl index.shtml</p>
<p>AllowOverride None</p>
<p>Order Deny,Allow</p>
<p>Allow from all</p>
<p>&lt;/Directory&gt;</p>
<p>&lt;/VirtualHost&gt;</p>
<p><span style="font-size: large;"><strong>另一种方法</strong></span>是 使用apache的url　rewrite来实现将需要执行的asp文件通过反向代理传递给iis执行，此种方法的优点是：1.htm，html，图片等 文件可由apache完成执行，提高效率，而asp则通过rewrite规则传递给iis解释；2.在asp程序需要iis的rewrite时，通过该方 法传递给iis，iis的rewrite规则仍然有效。即在iis中开启rewrite时，浏览器中输入<a href="http://123.0.0.1:808/test/index.html">http://123.0.0.1:808/test/index.html</a> ，实际访问的是<a href="http://123.0.0.1:808/test/index.asp">http://123.0.0.1:808/test/index.asp</a> ；如果使用的第一种反向代理法，在浏览器中输入<a href="http://a.b.c/test/index.html">http://a.b.c/test/index.html</a>，会出现找不到页面，若使用接下来来讲解的方法，将asp和需要rewrite的index.html等传递给iis解释，就能实现iis的rewrite在apache反向代理情况下不失效。例子如下（“<span style="color: #0000ff;">蓝色</span>”的语句为新添加代码）：</p>
<p>NameVirtualHost 123.0.0.1</p>
<p>&lt;VirtualHost 123.0.0.1&gt;</p>
<p>ServerName <span style="color: #ff0000;">a.b.c</span></p>
<p>DocumentRoot &#8220;<span style="color: #ff0000;">D:/www/abc</span>&#8221;</p>
<p><span style="color: #0000ff;"> RewriteEngine   on</span></p>
<p>#禁止访问global.asa,global.asax,web.config</p>
<p>RewriteCond   %{REQUEST_URI} ^.*(global\.asa|global\.asax|web\.config).*$ [NC]</p>
<p>RewriteRule   ^/test/(.*) <a href="http://123.0.0.1:808/test/$1">http://123.0.0.1:808/test/$1</a> [F,L]</p>
<p>#把所有对asp和aspx文件的请求转到iis处理</p>
<p>RewriteCond   %{REQUEST_URI} ^/.*(\.asp)x?\??.*$ [NC]</p>
<p>RewriteRule   ^/test/(.*) <a href="http://123.0.0.1:808/test/$1">http://123.0.0.1:808/test/$1</a> [P]</p>
<p>#把html文件的请求转到iis处理</p>
<p>RewriteCond   %{REQUEST_URI} ^/.*(\.html)?\??.*$ [NC]</p>
<p>RewriteRule   ^/test/(.*) <a href="http://123.0.0.1:808/test/$1">http://123.0.0.1:808/test/$1</a> [P]</p>
<p><span style="color: #ff0000;">#请使用相同目录名,否则子目录路径会出错，导致图片、css等放在子目录的文件调用出错，此时浏览器输入“a.b.c/test/index.html”和“a.b.c/test/index.asp”时都能正常显示页面。</span></p>
<p><span style="color: #ff0000;">#特别注意，此段代码别加到<span style="color: #000000;">&lt;Directory &#8220;</span><span style="color: #ff0000;">D:/*</span><span style="color: #000000;">&#8220;&gt; 和&lt;/Directory&gt;之间。</span></span></p>
<p>&lt;Directory &#8220;<span style="color: #ff0000;">D:/www/abc</span>&#8220;&gt;</p>
<p>Options FollowSymLinks IncludesNOEXEC Indexes</p>
<p>DirectoryIndex index.html index.htm default.htm index.php default.php index.cgi default.cgi index.pl default.pl index.shtml</p>
<p>AllowOverride None</p>
<p>Order Deny,Allow</p>
<p>Allow from all</p>
<p>&lt;/Directory&gt;</p>
<p>&lt;/VirtualHost&gt;
<div style="margin-top: 15px; ">
<p><strong>原创文章，转载请注明：</strong> 转载自<a href="http://www.wxnn.net/">无心呢喃</a></p>
<p><strong>本文链接地址:</strong> <a href="http://www.wxnn.net/apache-iis-asp-php.html">http://www.wxnn.net/apache-iis-asp-php.html</a></p>
</div>
<ul class="related_post"><li><a href="http://www.wxnn.net/iis6-php-mysql-phpmyadmin.html" title="在IIS6下安装PHP+MYSQL+PHPMYADMIN">在IIS6下安装PHP+MYSQL+PHPMYADMIN</a></li><li><a href="http://www.wxnn.net/iis-rewrite-error.html" title="在IIS下实现伪静态的问题">在IIS下实现伪静态的问题</a></li><li><a href="http://www.wxnn.net/free-jsp-virtual-space.html" title="EATJ提供50M免费JSP空间">EATJ提供50M免费JSP空间</a></li><li><a href="http://www.wxnn.net/php-mbstring.html" title="没有发现 PHP 的扩展设置mbstring 解决方法">没有发现 PHP 的扩展设置mbstring 解决方法</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.wxnn.net/apache-iis-asp-php.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

