Squid实现web反向代理的方法

作者: 蓝鹰 分类: CentOS 发布时间: 2013-10-18 12:50 ė267 浏览数 6Squid实现web反向代理的方法已关闭评论

Squid 反向代理的实现原理

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

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

Squid反向代理服务器位于本地 WEB 服务器和 Internet 之间 , 组织架构如图 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反向WEB代理服务器

安装 yum -y install squid

配置文件 /etc/squid/squid.conf

cache_effective_user squid
cache_effective_group squid
tcp_recv_bufsize 65535 bytes
#只有一台加速所以下面设置为0
icp_port 0
#SQUID代理名
visible_hostname abc.com
http_port 80 vhost

#acl
acl all src 0.0.0.0/0.0.0.0
http_access allow all

#domains
#增加反向代理注意是相对应的
cache_peer 192.168.222.123 parent 8080 0 no-query originserver name=bbs
cache_peer_domain bbs bbs.abc.com
cache_peer_access bbs allow all

#log off
access_log none
cache_log none
cache_store_log none
#cache,dir 15G
cache_dir ufs /squid 15360 64 256
maximum_object_size 1024 KB
maximum_object_size_in_memory 1024 KB
cache_mem 128 MB
cache_swap_low  80
cache_swap_high 90
ipcache_size 512
ipcache_low 90
ipcache_high 95
fqdncache_size 512

### timeout
connect_timeout 1 minute
peer_connect_timeout 30 seconds
request_timeout 2 minutes
persistent_request_timeout 30 seconds
hierarchy_stoplist cgi-bin ?

#refresh_pattern
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern -i \.jpg$ 43200 50% 86400
refresh_pattern -i \.png$ 43200 50% 86400
refresh_pattern -i \.css$ 43200 50% 86400
refresh_pattern -i \.js$ 43200 50% 86400
refresh_pattern -i \.xml$ 43200 50% 86400
refresh_pattern -i \.htm$ 43200 50% 86400
refresh_pattern -i \.html$ 43200 50% 86400
refresh_pattern . 0 20% 4320

#header off
forwarded_for on

设置缓存目录的权限

chown -R squid.squid /squid

初始化缓存 squid -z

启动服务 service squid start

完成SQUID WEB反射代理加速服务器的配置!!

本文出自 蓝鹰博客,转载时请注明出处及相应链接。

本文永久链接: http://www.lanyingblog.com/blog/1100.html

Ɣ回顶部