使用squid配置代理服务器

  • 时间:
  • 浏览:10
  • 来源:10分6合_10分6合平台_10分6合网投平台
作者:190 hihi 来源:ChinaZ源码报导 浏览: 2011-4-20 9:27:28 字号:大 中 小

[摘要]本文在介绍 squid 反向代理的工作原理的基础上,指出反向代理技术在提高网站访问速度,增强网站可用性、安全性方面有很好的用途。作者在具体的实验环境下,利用 DNS 轮询和 Squid 反向代理技术,实现了网站的负载均衡,从而提高了网站的可用性和可靠性。

  本文在介绍 squid 反向代理的工作原理的基础上,指出反向代理技术在提高网站访问速度,增强网站可用性、安全性方面有很好的用途。作者在具体的实验环境下,利用 DNS 轮询和 Squid 反向代理技术,实现了网站的负载均衡,从而提高了网站的可用性和可靠性。

  现在有有些大型的门户网站如 SINA 都采用 squid 反向代理技术来加速网站的访问速度,可将不同的 URL 请求分类分类整理到后台不同的 WEB 服务器上,一并互联网用户只能看多反向代理服务器的地址,加强了网站的访问安全。

反向代理的概念

  反向代理服务器又称为 WEB 加速服务器,它存在 WEB 服务器的前端,充当 WEB 服务器的内容缓存器。其系统特性如图 1

图 1. 系统特性

  反向代理服务器是针对 WEB 服务器设置的,后台 WEB 服务器对互联网用户是透明的,用户只能看多反向代理服务器的地址,不清楚后台 WEB 服务器是要怎样组织架构的。当互联网用户请求 WEB 服务时,DNS 将请求的域名解析为反向代理服务器的 IP 地址,那我 URL 请求将被发送到反向代理服务器,由反向代理服务器负责防止用户的请求与应答、与后台 WEB 服务器交互。利用反向代理服务器减轻了后台 WEB 服务器的负载,提高了访问速度,一并防止了因用户直接与 WEB 服务器通信带来的安全隐患。

Squid 反向代理的实现原理

  目前有有些反向代理软件,比较有名的有 Nginx 和 Squid 。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,是另五个高性能的 HTTP 和反向代理服务器,也是另五个 IMAP/POP3/SMTP 代理服务器。

  Squid 是由美国政府大力资助的一项研究计划,其目的为防止网络速度欠缺的什么的问题,支持HTTP,HTTPS,FTP 等多种协议,是现在 Unix 系统上使用、最多功能也最完全的一套软体。下面将重点介绍 Squid 反向代理的实现原理和在提高网站性能方面的应用。

  Squid反向代理服务器存在本地 WEB 服务器和 Internet 之间 , 组织架构如图 2:

图 2. 组织架构

  客户端请求访问 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 反向代理加速网站实例

  本实例的域名是 www.chinaz.com,通过DNS的轮询技术,将客户端的请求分类分类整理给其中一台 Squid 反向代理服务器防止,不可能 这台 Squid 缓存了用户的请求资源,则将请求的资源直接返回给用户,之后 这台 Squid 将没办法 缓存的请求根据配置的规则发送给邻居 Squid 和后台的 WEB 服务器防止,那我既减轻后台 WEB 服务器的负载,又提高整个网站的性能和安全性。该系统特性图 3 如下:

图 3. 系统特性

配置的系统环境

  • 一台 DNS 服务器:操作系统 Freebsd,软件 BIND 9.5,IP 192.168.76.222 ;
  • 三台 Squid 服务器:操作系统 Linux AS 4,软件 Squid 3.0,相应的 IP 如下:
Squid1:192.168.76.223    

Squid2:192.168.76.224

Squid3:192.168.76.225
  • 三台 WEB 服务器:操作系统 Linux AS 4,应用软件 Tomcat 5.0+Mysql,相应的 IP 地址如下:
webServer1:210.82.118.195    

webServer2:192.168.76.226

webServer1:192.168.76.227

应用软件的安装和配置

配置 DNS 服务器

软件利用 Freebsd 自带的 bind 9.5 。之后 针对该系统配置 bind,首先修改 bind 的配置文件 /etc/namedb/named.conf,在文件中加在

zone "cache.chinaz.com"{ 

type master;

file "master/ cache.chinaz.com ";

};

再在 /etc/namedb/master 目录下加在 cache.chinaz.com 文件,该文件的内容如下:

$TTL    34000 

@ IN SOA search. chinaz.com. root. chinaz.com. (

4004004007 ; Serial

34000 ; Refresh

900 ; Retry

34000000 ; Expire

34000 ) ; Minimum

IN NS search.chinaz.com.

1 IN PTR localhost.chinaz.com.

wenjin IN A 192.168.76.223

wenjin IN A 192.168.76.224

wenjin IN A 192.168.76.225

  那我当用户请求的之后,DNS 通过轮询机制将 wenjin.cache.chinaz.com 的域名解析为 192.168.76.223、192.168.76.224 和 192.168.76.225 其中之一。

  配置完成后,运行 rndc star t 启动 bind 服务。可在 /etc/rc.conf 中设置 named_enable="YES" 使得开机自启动。

用 ps – A |grep named 查看 bind 服务与否起来;

用 nslookup wenjin.cache.chinaz.com 测试 bind 服务与否正常运行。

快捷键使用:上一页“←”,下一页“→”

sssss
Tags: squid   代理服务器   服务器配置  
责任编辑:190