网络中现有两台服务器,各自提供WEB与EMAIL邮局服务,但公网IP地址只有一个,因此利用Apache的反向代理功能,将其中一台WEB服务影射到另一台WEB服务的URL空间中,形成虚拟目录对外提供服务。
反向代理对于客户端而言它就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理的名字空间
(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端,就像这些内容原本就是它
自己的一样。
反向代理的典型用途是将防火墙后面的服务器提供给Internet用户访问。反向代理还可以为后端的多台服务器提供负载平衡,或为后端较慢的服务器提供缓
冲服务。另外,还可以启用高级URL策略和管理技术,从而使处于不同web服务器系统的web页面同时存在于同一个URL空间下。可以使用ProxyPass指令激活反向代理(在RewriteRule指令中使用[P]标记也可以)。配置反向代理并不需要打开ProxyRequests指令。
示例如下:
LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule headers_module modules/mod_headers.so <IfModule mod_proxy.c> ProxyRequests off#控制对代理服务器的访问 <Proxy *> Order deny,allow Allow form all </Proxy> #ProxyPass 将一个远端服务器映射到本地服务器的URL空间中ProxyPass /app1/ http://internal1.example.com/ ProxyPass /app2/ http://internal2.example.com/ #ProxyPassReverse调整由反向代理服务器发送的HTTP应答头中的URLProxyPassReverse /app1/http://internal1.example.com/ProxyPassReverse /app2/http://internal2.example.com/</IfModule>
设置后重启apache服务
apachectl restart
具体设置详见Apache HTTP Server文档中的mod_proxy章节