WEB服务器

如何用Apache反向代理设置对外的WWW服务器

日期:2015/6/28来源: IT猫扑网

  有一小区,内部使用伪ip,大家通过一linux网关使用ip欺骗上网,现在有的内部用户要对外发布信息,要建立自己的www服务器。但是因为内部使用的是伪ip,必须采取一定的手段来实现从Internet到内部www主机的访问,比较常用的方法是端口转发(用ipmasqadm实现)。我在想,有没有更成熟的软件可以实现基于URL的反向NAT,也就是说,每个内部的www主机都解析到linux网关的外部网卡,当收到如www.1.com的请求时,网关可以自动转发到真实的www.1.com(假设为192.168.1.1),   收到www.1.com的响应后再改写源地址为网关的真实ip地址返回给internet用户。也就是说可以工作在应用层进行分析转发,同时工作在网络层进行地址改写。

  关于实现反向web代理,除了上述的端口转发外,还可用apache实现,当仍squid的加速模式同样可实现。下面,我具体介绍apache反向web代理的实现。

  一台apache服务器(双网卡)用专线接入Internet作为防火墙,在内部网段上有多台WWW服务器希望这台机器能使供外部世界访问指定的WWW服务器

  这台机器真实ip地址为111.111.111.111,内部ip地址172.16.1.1

  内部网段上有三台web服务器:

      www1(172.16.1.101)
      www2(172.16.1.102)
      www3(172.16.1.103)

  这三台web服务器类型不限,可以是apache,也可用IIS或其他系统。

  外部dns服务器指定

      www1.xxx.com(111.111.111.111)
      www2.xxx.com(111.111.111.111)
      www3.xxx.com(111.111.111.111)

  apache配置时其它部份采用默认配置,以下才是我们关心的:

  NameVirtualHost  111.111.111.111

  <VirtualHost 111.111.111.111>
  ServerName www1.xxx.com
  ProxyPass / http://172.16.1.101/
  ProxyPassReverse / http://172.16.1.101/
  </VirtualHost>

  <VirtualHost 111.111.111.111>
  ServerName www2.xxx.com
  ProxyPass / http://172.16.1.102/
  ProxyPassReverse / http://172.16.1.102/
  </VirtualHost>

  <VirtualHost 111.111.111.111>
  ServerName www3.xxx.com
  ProxyPass / http://172.16.1.103/
  ProxyPassReverse / http://172.16.1.103/
  </VirtualHost>

  采用本方法,内部的WWW服务器和文件服务完全与外部世界隔开,不直接连接到外部,通过防火墙上运行的Apache服务提供对内部的代理访问,增强了安全性,同时在防火墙上运行的Apache 服务器上无真正的内容,黑客难以篡改内容,符合了作为防火墙要求运行服务越少越安全的准则。

  采用本方法,内部的WWW服务器的内容在防火墙上进行缓存,起到加速响应的效果。

相关文章

相关下载

网友评论

我要评论...
    没有更早的评论了
    取消