引言:最近帮以客户搭建服务器,服务器就要运行php的网站和asp的网站,而且php的网站有负责url重写,刚开始不好怎么配置服务器,最后经过考虑决定用apache设计虚拟主机,并与iis共享80端口。下面就是具体的操作了(前提是iis和apache都已经运行正常了)。
一、apache虚拟主机配置
可直接用记事本打开apache安装目录下的httpd.conf文件,也可以在httpd.conf文件中添加Include conf/extra/httpd-vhosts.conf(注意:文件所在的路径为apache安装目录),然后在httpd-vhosts.conf文件中添加如下信息
示例如下:
#号是起注释作用
实例
代码:
NameVirtualHost *:80
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#
<VirtualHost *:80>
DocumentRoot “D:/DATA/wwwroot/Apache” //绑定的网站目录
ServerAdmin mailto:admin@amcone.cn //管理邮箱地址
ServerName amcone.cn //绑定的域名
ErrorLog logs/dummy-host.example.com-error_log //错误的日志
CustomLog logs/dummy-host.example.com-access_log common //客户日志
ErrorDocument 404 http://www.amcone.cn/404.html //自定义出错页
</VirtualHost>
<VirtualHost *:80>
DocumentRoot “D:/DATA/wwwroot/BBS” (网站目录)
ServerName bbs.amcone.cn (虚拟主机)
ErrorDocument 404 http://www.amcone.cn/404.html
</VirtualHost>
要绑定多少个域名,就添加多少个<VirtualHost></VirtualHost>记录
完毕!
二、一个IIS与Apache共存80端口的解决方案
先说一下怎么实现的吧,Apache有个功能叫逆向代理,我们可以通过它来作为IIS的代理,从而做到同时能通过80端口访问分别在IIS上和Apache上的文件—-当然,也可以通过它把访问指向几台不同的服务器(这样似乎就能搭建一个集群?)。
先把IIS的端口修改成8080,然后我们打开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
前面的注释(#)去除 (去掉#才会加载模块)
然后我们再增加一个虚拟主机:
ServerName iis.amcone.cn (这里设置你要仿问的域名或主机地址,本机测试请修改host文件)
ProxyPass / http://localhost:8080/ (这里保持默认。不需要修改)
ProxyPassReverse / http://localhost:8080/ (这里保持默认。不需要修改)
逆(反)向代理使用ProxyPass和ProxyPassReverse指令进行配置。
IIS里面有多少个站就添加多少个虚拟主机和规则
以上配置完成后须重新启动apache才能立马生效,如果你是在本机测试并且在windows平台下,请用记事本打开系统中的host文件,并做如下修改:
127.0.0.1 localhost
127.0.0.1 amcone.cn
127.0.0.1 bbs.amcone.cn
127.0.0.1 iis.amcone.cn
本文介绍如何配置Apache与IIS共享80端口,包括Apache虚拟主机配置及通过Apache逆向代理访问IIS站点的方法。

858

被折叠的 条评论
为什么被折叠?



