使用Squid配置反向代理服务器

日期: 2012-09-17 作者:羽扇纶巾 来源:TechTarget中国

配置反向代理服务器确保企业网络服务安全   反向代理(Reverse Proxy)方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。   值得注意的是:通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中。由于外部网络上的主机并不会配置并使用这个代理服务器,普通代理服务器也被设计为在Internet上搜寻多个不确定的服务器,而不是针对Intern……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

配置反向代理服务器确保企业网络服务安全

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

  值得注意的是:通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中。由于外部网络上的主机并不会配置并使用这个代理服务器,普通代理服务器也被设计为在Internet上搜寻多个不确定的服务器,而不是针对Internet上多个客户机的请求访问某一个固定的服务器,因此普通的Web代理服务器不支持外部对内部网络的访问请求。

  当一个代理服务器能够代理外部网络上的主机,访问内部网络时,这种代理服务的方式称为反向代理服务。此时代理服务器对外就表现为一个Web服务器,外部网络就可以简单把它当作一个标准的Web服务器而不需要特定的配置。不同之处在于,这个服务器没有保存任何网页的真实数据,所有的静态网页或者CGI程序,都保存在内部的Web服务器上。因此对反向代理服务器的攻击并不会使得网页信息遭到破坏,这样就增强了Web服务器的安全性。

  反向代理方式和包过滤方式或普通代理方式并无冲突,因此可以在防火墙设备中同时使用这两种方式,其中反向代理用于外部网络访问内部网络时使用,正向代理或包过滤方式用于拒绝其他外部访问方式并提供内部网络对外部网络的访问能力。因此可以结合这些方式提供最佳的安全访问方式。

  目前有许多反向代理软件,比较有名的有 Nginx 和 Squid 。其他还包括Socks、Apache、Jigsaw、Delegate等。

  使用Squid配置反向代理服务器

  Squid作为反向代理服务器使用时,其工作原理为:客户端请求访问 Web 服务时,DNS 将访问的域名解析为 Squid 反向代理服务器的 IP 地址,这样客户端的 URL 请求将被发送到反向代理服务器。如果 Squid 反向代理服务器中缓存了该请求的资源,则将该请求的资源直接返回给客户端,否则反向代理服务器将向后台的 Web 服务器请求资源,然后将请求的应答返回给客户端,同时也将该应答缓存在本地,供下一个请求者使用。

  Squid反向代理一般只缓存可缓冲的数据(比如 HTML网页和图片等),而一些 CGI 脚本程序或者 ASP、JSP 之类的动态程序默认不缓存。它根据从 Web 服务器返回的 HTTP 头标记来缓冲静态页面。有四个最重要HTTP头标记:

  Last-Modified:告诉反向代理页面什么时间被修改
  Expires:告诉反向代理页面什么时间应该从缓冲区中删除
  Cache-Control:告诉反向代理页面是否应该被缓冲
  Pragma:用来包含实现特定的指令,最常用的是Pragma:no-cache

  要配置反向代理服务器,需要在squid的主配置文件里面添加如下内容:

  http_port 80 accel vhost vport
  cache_peer 192.172.1.133 parent 80 0 no-query originserver
  cache_peer_domain www.test.com 192.172.1.133
  acl sites dstdomain www.test.com
  http_access allow sites
  http_access deny all

  cache_dir ufs /var/spool/squid3 100 16 256
  cache_mgr yourmail@somesite.com
  cache_mem 64 MB
  maximum_object_size_in_memory 1028 KB
  access_log /var/log/squid3/access.log squid

  上述配置的详细解释如下:

  http_port 80 accel vhost vpor:指定Squid所服务的端口为80,vhost和vport指的是所采用的虚拟主机的方式:基于IP地址和基于端口的;
  cache_peer 192.172.1.133 parent 80 0 no-query originserver:指定真实Web Server的IP地址;
  cache_peer_domain www.test.com 192.172.1.133:告诉反向代理服务器,当客户端有对www.test.com的访问请求时,需要从真实Web Server 192.172.1.133上取得数据;
  acl sites dstdomain www.test.com:定义客户端能够通过反向代理服务器访问的主机;
  http_access allow sites、http_access deny all:限制客户端通过反向代理服务器能够访问的范围;
  cache_dir ufs /var/spool/squid3 100 16 256、cache_mgr yourmail@somesite.com、cache_mem 64 MB、maximum_object_size_in_memory 1028 KB、access_log /var/log/squid3/access.log squid:代理服务器的常规配置。

作者

羽扇纶巾
羽扇纶巾

自由撰稿人。

相关推荐

  • Squid访问控制方法的实例

    本文介绍了Squid访问控制方法的实例和常用的ncsa实现的认证(ncsa是Squid源代码包自带的认证程序之一)。

  • Squid访问控制:ACL元素以及访问列表

    使用访问控制特性,可以控制在访问时根据特定的时间间隔进行缓存、访问特定站点或一组站点等等。Squid访问控制有两个要素:ACL元素和访问列表。