Apache和IIS共用80端口,很多情况下为了实现某些目的,又或者局限于什么因素,需要一台服务器装多httpd软件,最常见的莫过于Apache和IIS了。本文的意图就是记录如何让Apache代理IIS,使外网可以共用一个端口访问。
假设你想外网使用Apache的服务并且使用80端口来访问网站,那么httpd.conf里就设置“Listren 80”;然后把需要代理的IIS站点,设置成任意(80等已用端口除外)端口,设置好后开始配置Apache的httpd.conf文件。以下是我实测,可能和网上其他的有一点点区别,但是我是可以实现了,下面列出几个关键部分。
Listren 80
#别人总是说要加IP在前面,我是没加
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
#这两句前的井号去掉,我只用到了http
#之后我设置了通过IP访问的处理方法www.ctusky.com
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot "x:/html/ipweb"
ServerName localhost
ServerName *
</VirtualHost>
#然后就是设置代理了,假设IIS里设置的被代理端口为81
<VirtualHost *:80>
ServerName a.com
ProxyPass / http://b.com:81/
ProxyPassReverse / http://b.com:81/
</VirtualHost>
#记得换域名
通过上面的设置,当你访问a.com时,Apache就会把他交给由IIS工作的b.com的81端口了,前提是这个b.com:81能被访问到,如果你是通过内网端口映射,且不想那么麻烦,那么就定义一下自己的HOSTS表。好了,完稿。