Squid实现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-c
ache
以下是我配置的一台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