apache做反向代理服务器

来源:互联网 发布:手机淘宝详情页怎么做 编辑:程序博客网 时间:2024/05/16 08:32

apache做反向代理服务器

反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。Apache作为一个反向代理服务器(R-Proxy),可以和WAS、WLS等集成,但不能和IIS集成

一般来说,要在外网访问内网的服务器需要在路由上做端口映射。

比如路由 IP 192.168.0.1 内网服务器 A 的 IP192.168.0.2。

要让外网通过路由访问服务器 A 的 WEB 页面,就必须在路由上设置 TCP 80 端口映射。即将外网对路由公网 IP TCP 80 访问转移到服务器 A 的 192.168.0.2 的 TCP 80 端口上。
   这样,在外网也就是公网访问本局域网的公网 IP http 80 WEB 页面就是访问服务器 A 192.168.0.2 的 TCP 80 http WEB 服务。
   如果有第二台服务器 B 或者 A 要开放另外的端口,都必须在路由上再分配一个不同的端口映射到相应的机器的相应端口上。
   那么,如果局域网有两台以上的服务器呢,对于服务器 A 安装 Apache 做 WEB 服务(不论是 Win32 还是 UNIX 系统),设置路由将 80 端口映射到 A。
   对于其他的服务器 B C 可以安装 Apache 或者 IIS 或者其他可能的 http 服务软件,并不需要在路由上做端口映射,也不需要 WEB 服务使用特定端口。
   甚至也可以服务器 A 上另外安装一个 WEB 服务软件使用 80 以外的端口。
   那么,关键的内容在于对服务器 A 上的 Apache 进行设置,做一个反向代理,让外网可以通过服务器 A 的 Apache 提供的 WEB 代理来访问和 A 在一个局域网的其他服务器 WEB 页面。

 

我使用的是apache2.2.17

首先是Apache的安装。从http://www.apache.org上下载Apache的安装程序,双击安装程序进行安装。安装好之后屏幕右下方系统托盘*会出现一个红色的羽毛状图标,那就是Apache的控制程序。单击此图标以启动Apache服务器。这时打开IE并在IE的地址栏*输入http://localhost/应当能够看到Apache的欢迎画面。

 

当apache正常启动后就可以进行配置了。

接下来我们修改Apache的配置文件使其支持HTTP代理服务器功能。用文本编辑器打开httpd.conf文件。该文件位于Apache安装目录的 conf目录下。如果你在安装Apache的时候没有改变安装路径,那么它应当位于C:\ProgramFiles\Apache Group\Apache\conf\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

去掉前面的#号使相应的模块生效。

 

然后对于要代理的局域网内每个服务器设置一项:
<VirtualHost 192.168.0.2>
ServerName www.xxx.com
ProxyPass / http://192.168.0.3:88/
ProxyPassReverse / http://192.168.0.3:88/
</VirtualHost>
这部分内容只要加在httpd.conf这个问价下边即可。

然后在最后加上一句ProxyRequests   On

192.168.0.2 是服务器 A 的 IP,就是做 Apache 代理的服务器。
www.xxx.com 是域名,这个必须能解析到路由公网 IP 的域名。
而http://192.168.0.3:88 是服务器 A 能访问到的内网 WEB 服务地址。IP 和端口都可以任意指定。

配置完成以后重新启动apache,就可以起到反向代理服务的作用了。


下面的配置也是可以的》
 <IfModule mod_proxy.c>
     ProxyPass /service_club/ http://192.168.0.3:88/
     ProxyPass /club_sohu/ http://192.168.0.3:88/
     ProxyPass /atsearch/select http://192.168.0.3:88/
  </IfModule>

0 0