使用apache作为代理,所有通过80端口访问的站点都会先访问apache,再由apache决定访问iis的站点还是apache的站点,当然ngnix等服务器也可以实现这样的代理,这样也许iis站点性能或多或少没有直接访问来得快,不过,按我实际测试,几乎是没有影响。
情景模拟:
IIS网站 www.a.com
APACHE网站 www.b.com
iis设置: 创建iis网站,指定端口为8080,本地访问地址:127.0.0.1:8080
appche设置方法
1.设置apache监听端口为80,并在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
2.找到 #Include conf/extra/httpd-vhosts.conf,去掉注视修改为Include conf/extra/httpd-vhosts.conf
3.打开apache对应路径 conf/extra/httpd-vhosts.conf 文件,添加如下代码
<VirtualHost *:80>
#设置www.a.com域名绑定,用apache代理访问iis 8080端口网站
ServerName www.a.com
ProxyPass / http://127.0.0.1:8080/ #记得域名最后的反斜杠一定要加,不然会遇到找不到脚本或样式,或打不开的错误
ProxyPassReverse / http://127.0.0.1:8080/
SetEnv force-proxy-request-1.0.1
SetEnv proxy-nokeepalive 1
</VirtualHost>
#设置www.b.com域名绑定
<VirtualHost *:80>
DocumentRoot "D:/web/" #网站目录
ServerName www.b.com
</VirtualHost>