1、客户端 A 向代理服务器发出访问 Internet 的请求 。 2、代理服务器接受请求后,首先与访问控制列表中的访问规则相匹配,如果满足规则,则在缓存中查找是否有需要的资源信息。 3、如果缓存中存在客户端 A 的请求信息,那么将此信息返回给客户端 A ; 如果没有代理服务器将代替客户端去向 Internet 请求指定的信息。 4、Internet 上的主机将请求的信息发送到代理服务器,代理服务器会将信息存入缓存中。 5、代理服务器将 Internet 上主机的返回信息传给客户端 A 。 6、当客户端 B 也请求相同的信息时。 7、代理服务器也会接受请求后,与访问控制列表中的规则相匹配。、 8、如果满足规则,代理服务器将会把缓存中的信息直接传给客户端 B 。
shell > squid -k check
2015/01/05 15:11:04| ERROR: '0.0.0.0/0.0.0.0' needs to be replaced by the term 'all'.
2015/01/05 15:11:04| SECURITY NOTICE: Overriding config setting. Using 'all' instead.
2015/01/05 15:11:04| WARNING: (B) '::/0' is a subnetwork of (A) '::/0'
2015/01/05 15:11:04| WARNING: because of this '::/0' is ignored to keep splay tree searching predictable
2015/01/05 15:11:04| WARNING: You should probably remove '::/0' from the ACL named 'all'
squid: ERROR: No running copy
## squid -k check 检查 squid.conf 是否配置有误,最后一行是因为没有启动 squid 服务 ## 前面五行是因为 3.0 版本后不让使用 all 这个列表名,默认就有一个 all 为所有 ## 允许所有主机能够使用代理就变成了 http_access allow all ( 不需要 acl 申明了 ,即删除 acl all src 0.0.0.0/0.0.0.0 )
shell > squid -k check
squid: ERROR: No running copy
## 删除之后正常了,下面初始化
shell > squid -z
2015/01/05 15:24:01| Creating Swap Directories
2015/01/05 15:24:01| /opt/squid_cache exists
2015/01/05 15:24:01| Making directories in /opt/squid_cache/00
2015/01/05 15:24:01| Making directories in /opt/squid_cache/01
2015/01/05 15:24:01| Making directories in /opt/squid_cache/02
2015/01/05 15:24:01| Making directories in /opt/squid_cache/03
2015/01/05 15:24:01| Making directories in /opt/squid_cache/04
2015/01/05 15:24:01| Making directories in /opt/squid_cache/05
2015/01/05 15:24:01| Making directories in /opt/squid_cache/06
2015/01/05 15:24:01| Making directories in /opt/squid_cache/07
2015/01/05 15:24:01| Making directories in /opt/squid_cache/08
2015/01/05 15:24:02| Making directories in /opt/squid_cache/09
2015/01/05 15:24:02| Making directories in /opt/squid_cache/0A
2015/01/05 15:24:02| Making directories in /opt/squid_cache/0B
2015/01/05 15:24:02| Making directories in /opt/squid_cache/0C
2015/01/05 15:24:02| Making directories in /opt/squid_cache/0D
2015/01/05 15:24:02| Making directories in /opt/squid_cache/0E
2015/01/05 15:24:02| Making directories in /opt/squid_cache/0F
## 看到创建了好多目录,接着看一下子目录下的二级目录
shell > ls /opt/squid_cache/00/
00 08 10 18 20 28 30 38 40 48 50 58 60 68 70 78 80 88 90 98 A0 A8 B0 B8 C0 C8 D0 D8 E0 E8 F0 F8
01 09 11 19 21 29 31 39 41 49 51 59 61 69 71 79 81 89 91 99 A1 A9 B1 B9 C1 C9 D1 D9 E1 E9 F1 F9
02 0A 12 1A 22 2A 32 3A 42 4A 52 5A 62 6A 72 7A 82 8A 92 9A A2 AA B2 BA C2 CA D2 DA E2 EA F2 FA
03 0B 13 1B 23 2B 33 3B 43 4B 53 5B 63 6B 73 7B 83 8B 93 9B A3 AB B3 BB C3 CB D3 DB E3 EB F3 FB
04 0C 14 1C 24 2C 34 3C 44 4C 54 5C 64 6C 74 7C 84 8C 94 9C A4 AC B4 BC C4 CC D4 DC E4 EC F4 FC
05 0D 15 1D 25 2D 35 3D 45 4D 55 5D 65 6D 75 7D 85 8D 95 9D A5 AD B5 BD C5 CD D5 DD E5 ED F5 FD
06 0E 16 1E 26 2E 36 3E 46 4E 56 5E 66 6E 76 7E 86 8E 96 9E A6 AE B6 BE C6 CE D6 DE E6 EE F6 FE
07 0F 17 1F 27 2F 37 3F 47 4F 57 5F 67 6F 77 7F 87 8F 97 9F A7 AF B7 BF C7 CF D7 DF E7 EF F7 FF
四、启动 Squid
shell > service squid start
正在启动 squid:.................... [失败]
## 启动失败,马上想到看日志
shell > cat /var/log/squid/cache.log
2015/01/05 15:40:31| /opt/squid_cache/swap.state: (13) Permission denied FATAL: commonUfsDirOpenSwapLog: Failed to open swap log.