用DNSPod和Squid打造自己的CDN (七) 配置Squid

2019-10-14 22:42:32刘景俊

refresh_pattern -i www.naizhao.com           240     100%    1440    ignore-reload
refresh_pattern -i .gif 180 20% 10080 override-expire ignore-reload reload-into-ims
refresh_pattern -i .jpg 180 20% 10080 override-expire ignore-reload reload-into-ims
(上面的几行指定了文件缓存的时间,可以指定某个域名,也可以指定某个文件类型。有更加多的域名或者文件类型就按照需要添加吧。-i是忽略大小写,naizhao.com和.gif是文件类型,240是最小缓存的时间,1440是最大缓存时间,都是分钟。这些先不用管,有需要的时候调整就好了。我们的口号是:先跑起来)

acl d-domains dstdomain .naizhao.com(允许访问的域名列表。如果要跑多个网站就添加多几个,用空格分开。naizhao.com前面有个英文的.,表示所有*.naizhao.com都允许。如果没有这个点,那么就只允许naizhao.com,访问www.naizhao.com就会提示访问被拒绝。)

cache_mgr silence.z@gmail.com (管理员的邮件地址,改为自己的)

cache_effective_user nobody
cache_effective_group nobody
(用来跑squid的用户和用户组。为了避免使用root帐号造成的不安全因素,大部分linux程序都会先用root运行,然后马上把运行的用户从root切换到其他用户,这样就算程序有漏洞被黑了,黑客也只能得到这个普通用户的权限,对系统的危害将大大降低。保持默认即可)

visible_hostname cnc.naizhao.com (服务器输出的机器名字,多台squid分布的时候这个很重要,通过设置多个不同的名字,很容易就可以找出哪台服务器有问题)

coredump_dir /var/spool/squid (squid挂掉后,临终遗言要放到哪里。不用管,一般人看不懂)

修改好配置文件后,我们还需要做一些最后的工作。
先建一个log目录,用来存放log文件。按照squid.conf的设置,我们输入下面的命令

mkdir /var/log/squid
chown nobody:nobody /var/log/squid

chown命令是设置所有者和组。刚才说了,squid将会使用用户nobody组nobody来运行。nobody:nobody冒号前面的是用户,后面的是用户组。
还有squid的缓存目录,同样需要设置权限为nobody:nobody

chown nobody:nobody /var/spool/squid

查看命令是否成功,可以使用ls -lh

ls -lh /var/spool/
……
drwxr-xr-x 3 nobody nobody 4.0K Jun 15 08:19 squid

剩下最后一步,初始化squid的缓存目录结构。(也就是刚才说的16个一级目录,256个二级目录。本身这些文件夹不存在,需要通过squid的命令建立)

squid的命令在/usr/local/squid/sbin下,我们进入这个目录,然后看看squid命令的帮助

./squid -h
Usage: squid [-hvzCDFNRYX] [-d level] [-s | -l facility] [-f config-file] [-u port] [-k signal]
       -d level  Write debugging to stderr also.