1.启用Apache代理模块

sudo a2enmod proxy
sudo a2enmod proxy_http

2.配置虚拟主机反向代理,以下是一个虚拟主机配置文件:

ServerName www.a.com
DocumentRoot “/var/site/www/”
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://www.b.com/
ProxyPassReverse / http://www.b.com/

需要把www.a.com的域名解析到反向代理机器上,然后访问www.a.com就会被代理到www.b.com上

另外一种情形比较常见:www.a.com位于机器b上,机器a外网能访问,机器b是内网机器外网不能访问,需要用用户访问机器b上的网站,这时可以用机器a反向代理机器b上的www.a.com 配置类似:

ServerName www.a.com
DocumentRoot “/var/site/www/”
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://www.a.com/
ProxyPassReverse / http://www.a.com/

除此之外需要:

1.将www.a.com解析到机器a IP上

2.在机器a上增加host记录 <机器b IP> www.a.com