windows 下iis与apache共存技术(IIS的网站用非80端口,也可以不用加端口号访问
2012-02-29 10:50
357 查看
windows 下iis与apache共存技术(IIS的网站用非80端口,也可以不用加端口号访问)
公司最近要部署多个站点,有PHP的,有ASP的,开发者要求环境不一样,但硬件资源有限,于是想办法放在同一台windows 下运行.
1、apache 对php的支持很好,iis对php的支持也不错。但是apache对asp支持(除非装一个低效率的asp插件)几乎很烂。
2、iis对虽然能同时支持asp/php,但对于现在流行的urlrewrite 也就是静态网址就不如apache 的url重写效率高。虽然iis能装个rewrite插件(也是低效率),但不支持iis上的虚拟主机的url重写,只能对根网站、或者默认网站支持。apache的杀手锏就是支持虚拟主机的.htaccess 。所以apache的虚拟主机就可以随意支持url重写了。说了上面这么多废话。直接切入正题:实现服务器同时支持asp/php 并支持上面的虚拟主机的url重写。而且对外的端口都是80。
1、安装iis 配置iis(注意:iis里面的网站千万别用80端口)。效果如下:
#虚拟主机1
主机头 www.abc.com 绑定地址:127.0.0.1 端口8080(也可以是其它端口) 这时候可以用http://www.abc.com:8080访问此网站了(已支持asp)
#虚拟主机2
主机头 www.def.com 绑定地址:127.0.0.1 端口8080.。。同上 这时候可以用http://www.def.com:8080访问此网站了。
2、安装apache 选择端口号:80
apache的虚拟主机,相信大家都会配置,配置好php的运行。安装好后的部分虚拟主机配置如下
#新加的代理服务器(在http.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
#虚拟主机3
#这是虚拟主机目录
DocumentRoot "e:/www/ghi"
ServerName www.ghi.com
#虚拟主机1的代理指向
#asp虚拟主机
ServerName www.abc.com
ProxyPass / http://www.abc.com:8080/
ProxyPassReverse / http://www.abc.com:8080/
------------------最终效果
输入http://www.abc.com 访问到结果与http:/www.abc.com:8080一样的(但地址栏并不显示8080),这是由于apache代理到iis了。
输入http://www.def.com 是访问不了的 因为没有在apache里面做代理 而只能输入http://www.def.com:8080才有结果
输入http://www.ghi.com 则直接由apache提供web服务。
apache的url重写大家应该知道怎么配置吧(不会上网搜,不是本文重点)。对虚拟主机做urlrewrite ,打开.htaccess支持功能就可以了。
上面的结果已经很清楚了。如果www.abc.com 是asp网站。则在apache配置里面做代理就行了。
如果www.ghi.com是php网站,则直接在 apache里面开虚拟主机。iis不会起到任何作用。
公司最近要部署多个站点,有PHP的,有ASP的,开发者要求环境不一样,但硬件资源有限,于是想办法放在同一台windows 下运行.
1、apache 对php的支持很好,iis对php的支持也不错。但是apache对asp支持(除非装一个低效率的asp插件)几乎很烂。
2、iis对虽然能同时支持asp/php,但对于现在流行的urlrewrite 也就是静态网址就不如apache 的url重写效率高。虽然iis能装个rewrite插件(也是低效率),但不支持iis上的虚拟主机的url重写,只能对根网站、或者默认网站支持。apache的杀手锏就是支持虚拟主机的.htaccess 。所以apache的虚拟主机就可以随意支持url重写了。说了上面这么多废话。直接切入正题:实现服务器同时支持asp/php 并支持上面的虚拟主机的url重写。而且对外的端口都是80。
1、安装iis 配置iis(注意:iis里面的网站千万别用80端口)。效果如下:
#虚拟主机1
主机头 www.abc.com 绑定地址:127.0.0.1 端口8080(也可以是其它端口) 这时候可以用http://www.abc.com:8080访问此网站了(已支持asp)
#虚拟主机2
主机头 www.def.com 绑定地址:127.0.0.1 端口8080.。。同上 这时候可以用http://www.def.com:8080访问此网站了。
2、安装apache 选择端口号:80
apache的虚拟主机,相信大家都会配置,配置好php的运行。安装好后的部分虚拟主机配置如下
#新加的代理服务器(在http.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
#虚拟主机3
#这是虚拟主机目录
DocumentRoot "e:/www/ghi"
ServerName www.ghi.com
#虚拟主机1的代理指向
#asp虚拟主机
ServerName www.abc.com
ProxyPass / http://www.abc.com:8080/
ProxyPassReverse / http://www.abc.com:8080/
------------------最终效果
输入http://www.abc.com 访问到结果与http:/www.abc.com:8080一样的(但地址栏并不显示8080),这是由于apache代理到iis了。
输入http://www.def.com 是访问不了的 因为没有在apache里面做代理 而只能输入http://www.def.com:8080才有结果
输入http://www.ghi.com 则直接由apache提供web服务。
apache的url重写大家应该知道怎么配置吧(不会上网搜,不是本文重点)。对虚拟主机做urlrewrite ,打开.htaccess支持功能就可以了。
上面的结果已经很清楚了。如果www.abc.com 是asp网站。则在apache配置里面做代理就行了。
如果www.ghi.com是php网站,则直接在 apache里面开虚拟主机。iis不会起到任何作用。
相关文章推荐
- windows 下iis与apache共存技术(IIS的网站用非80端口,也可以不用加端口号访问)
- 在windows下iis与apache共存80端口!通过各自的域名分别访问,不用加端口号(虚拟主机+代理)
- 服务器架构--------iis与Apache共存搭建(都可以使用域名访问,而不带后面的:80,90等)
- windows下iis,apache,tomcat共存共用80端口方法
- IIS发布网站并通过路由器映射使外网可以访问
- IIS部署的网站访问时报错,错误信息:编译器错误信息: CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework……
- IIS网站本机可以访问,局域网其他机器无法访问
- Windows安装nginx1.10.1反向代理访问IIS网站
- 基于apache服务器的网站本地可以访问,局域网内不能访问的问题解决方法
- IIS网站本机可以访问但局域网其他机器无法访问 解决方法
- 禁止通过ip直接访问网站来防止恶意解析-(apache,nginx,iis)
- Apache、nginx配置的网站127.0.0.1可以正常访问,内外网的ip地址无法访问,谁的锅?
- 关于 windows server 2003 网站无法访问,重启iis也不行。重启系统可以解决的问题。
- windows下面apache配置虚拟目录(测试使用,发布网站不建议目录访问)
- windows2003单IP下iis与apache共存,asp、php多个网站共同运行
- iis发布的网站用localhost可以访问,改成IP就无法访问的解决方案
- 阿里云ECS云服务器Windows如何通过IIS配置网站支持flv、mp4等文件访问读取
- 搭建了一个Apache+Php+MySQL的服务器。要如何通过Apache发布网站使得其他的电脑可以通过局域网访问?
- iis和apache共存,解决带端口访问问题