Squid反向代理
Squid 反向代理一般只缓存可缓冲的数据(比如 html 网页和图片等),而一些 CGI 脚本程序或者 ASP、JSP 之类的动态程序默认不缓存。它根据从 WEB 服务器返回的 HTTP 头标记来缓冲静态页面。有四个最重要 HTTP 头标记:
● Last-Modified: 告诉反向代理页面什么时间被修改
● Expires: 告诉反向代理页面什么时间应该从缓冲区中删除
● Cache-Control: 告诉反向代理页面是否应该被缓冲
● Pragma: 用来包含实现特定的指令,最常用的是 Pragma:no-cache
1. 简要描述
安装Linux环境: Ubuntu_Server_x86_64 GNU/Linux 2.6.28-11-server
主配置文件: /etc/squid3/squid.conf
重启服务: /etc/init.d/squid3 restart
Squid监听端口: TCP 3128 (作反向代理需更改为80)
默认Log目录 /var/log/squid/access.log
状态信息: squidclient -h 127.0.0.1 -p 80 mgr:info
内存信息: squidclient -h 127.0.0.1 -p 80 mgr:mem
磁盘信息: squidclient -h 127.0.0.1 -p 80 mgr:diskd
2. 安装软件:
apt-get install squid3
3. 配置说明:
cache_effective_user squid
启动代理服务器的用户
cache_effective_group squid
启动代理服务器的用户组
visible_hostname squid1.nlc.gov.cn
代理服务器域名(可不填)
http_port 80 accel vhost vport
icp_port 3130
设置监听端口,启用vhost vport加速
icp_port用来与邻居通信
cache_peer squid1.ibm.com.cn sibling 80 3130
cache_peer squid2.ibm.com.cn sibling 80 3130
设置邻居(本地squid无法获取的时候,与邻居通信)
cache_peer 192.168.1.31 parent 80 0 no-query originserver round-robin name=001
cache_peer 192.168.1.37 parent 80 0 no-query originserver round-robin name=002
定义001 与 002 两台RealServer
cache_peer_domain 001 002 cache.mydomain.com
将cache.mydomain.com域的请求通过 RR 轮询方式转发到三个父节点中的一个,cache.mydomain.com可以不填
cache_dir ufs /usr/local/squid/var/cache/ 1000 16 256
设置缓存目录大小1000MB,16个目录,256子目录
maximum_object_size 10240 KB
能缓存的最大对象为 10M
maximum_object_size_in_memory 512 KB
内存中缓存的最大对象 512K
cache_mem 256 MB
squid 用于缓存的内存总量
为了使得DNS查询加速,在/etc/host文件中添加:
192.168.76.223 squid1.ibm.com.cn
192.168.76.224 squid2.ibm.com.cn
日志分析 (可使用工具MySAR)
awk '{a[$4]++}END{for(i in a){printf("%-40s%-20s\n",i,a[i])}}' /var/log/squid3/access.log