一、概述:
比较合适的方式是使用多IP多网站,如果只有一个ip,让Apache和IIS公用,方法为:
Apache使用80端口,IIS使用别的,如800等,然后用Apache做IIS网站的代理,即通过Apache的80端口进来后,再通过代理转向IIS。
这个方法会牺牲性能,通过代理专项会使初次访问变得比较慢。
二、步骤:
1.将IIS中使用80端口的网站换掉,转成别的端口,如800
2.安装WAMP,检测80端口,如果被占用,一般是两个windows服务:
1)World Wide Web Publishing Service,中文的话应该是“Web配置服务”之类的,记不太清了
2)Sql Server的 Report服务,即报表服务
如果都不,可能是一些下载软件占用了,运行netstat -ano,检查80端口,查了一下占用80端口的PID。在任务管理器找到此PID,关掉即可
3.配置apapche的httpd.conf文件开始配置
1)要让apache支持转发也就是做iis的代理那么就要先启用apache的代理模块:
去掉下面四句之前的#注释,将其打开。
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
2)包含httpd-vhosts.conf文件
去掉这一句的#注释:
Include conf/extra/httpd-vhosts.conf
保存httpd.conf
4. 打开httpd-vhosts.conf文件
1)在“\wamp\bin\apache\apache2.4.2\conf\extra”下,找到,用记事本打开,
其中的都是例子,可以删掉,加入如下代码:
1 <VirtualHost *:80> 2 ServerAdmin [email protected] 3 DocumentRoot "g:/phpcms/" 4 <Directory "g:/phpcms/"> 5 Options Indexes FollowSymLinks 6 AllowOverride All 7 Order allow,deny 8 Allow from all 9 </Directory> 10 ServerName www.xy.com 11 </VirtualHost>
12 <VirtualHost *:80> 13 ProxyPreserveHost On 14 ServerAdmin [email protected] 15 ServerName www.ddd.com 16 ServerAlias ddd.com 17 DefaultLanguage zh-CN 18 AddDefaultCharset UTF-8 19 ProxyPass / http://192.196.11.5:800/ 20 ProxyPassReverse / http://192.196.11.5:800/
21 </VirtualHost>
分析:
第一块VirtualHost对应的是Apache上80端口挂的网站,域名为:www.xy.com ,所在位置是G:\PHPCMS
第二块VirtualHost对应的是IIS上800端口挂的网站,域名为:www.ddd.com,注意,下面的ServerAlias是次网站的其它域名,ddd.com,可以挂多个。
如果想要不加www,直接用ddd.com访问IIS的800网站,必须加入ServerAlias,否则会直接转向Apache的80网站。
2)保存httpd-vhosts.conf,重启Apache
5. 解析域名:
注:不必要,如果已经做过就不许要再做。
找到你的域名提供商,将两个域名(包括和不包括www)的都解析到服务器ip,一般30分钟后生效。
三、总结:
现在,通过ddd.com和www.ddd.com,可以直接访问IIS上的800端口所挂接网站,不需要再加端口号。
使用xy.com和www.xy.com访问到的是Apache 的80端口所挂接的网站。
第一次访问ddd.com网站的时候,会比较慢,毕竟是牺牲性能,通过Apache代理来访问的。
建议还是为网站服务器购买多个IP,至少两个,一个给Apache用,挂PHP网站;一个给IIS用,挂.NET的网站。
四、扩展:
1.关于同服务器多ip分别对应Apache和IIS的配置方法会在后续文章中给出;
2.关于IIS7+ 挂接PHP网站的配置方法会在后续文章中给出;
3.关于Apache 挂接aps.net网站的配置方法会在后续文章中给出。