这样就创建完成了。
在这里我补充一点,如果创建缓存目录失败的,多半是目录读写权限的问题。因为我们是ports安装的,所以系统会跟我们预先创建好squid用户和用户 组。并把家目录指向/usr/local/squid。所以我们这里一般不会有问题。但是,如果大家是用下载的源码自行编译又想把缓存目录换到别的位置或 是用个新硬盘存放,那改怎么办呢?我慢慢跟你道来。
我们现在以新增一块硬盘为例进行讲解。
首先我们格式化新硬盘
可以利用sysinstal来完成,具体操作可以参考FressBSD安装的那个章节有介绍,这里不说了。格式化好硬盘后,因为我们是用来存放缓存文件的,所以我们对该块硬盘做点小优化。
# newfs -b 8192 -f 1024 /dev/ad1s1d
# tunefs -n enable /dev/ad1s1d # 启用Soft Updates,必需在硬盘没有被挂载的时候或在单用户模式下才可以应用
# mount /dev/ad1s1d /cache
# ee /etc/fstab # 加载硬盘
/dev/ad1s1d /cache ufs rw 2 2
补充小知识:
FreeBSD 系统在block size 为8K或16K时有最好的表现,而使用newfs 进行格式化时,预设的 block size 为16K。然而,当我们的服务器是做为数据库用途时,由于数据库的存取是随机存取,所以在 block size 为 8K 时会有比较好的表现。如果我们将block size设为 16K 以上,比较容易造成空间浪费及空间破碎的问题,进而造成效能低落。
当我们的分区主要存放大量小型文件时,我们会将block size 调小一点,如 8K 或是 4K。而在 newfs 时,我们也会指定fragment size,它的值最好是 block size 的八分之一,例如当block size 为8K 时,我们会使用newfs -b 8192 -f 1024 来格式化硬盘。如果您使用的是/stand/sysinstall 来格式化硬盘,您可以在格式化硬盘时按N来设置newfs option。
当我们的分区主要用来存放少量大文件时,例如数据库,我们可以使用 newfs 参数 -i 设定 inode 所占空间大一点以减少 inode 的数量 (也就是可以建立的文件及目录数量),让系统在不正常关机后,开机时进行 fsck 时可以快一点。不过在修改inode 数量时要注意,否则您可能会遇到硬盘空间明明未满却无法新增文件的窘境。若要使用大型的inode,FreeBSD建议的inode 大小为32768、65536、或 262144,再大的话只会降低效能。
新硬盘安装好了以后,我们现在来做配置:
# pw groupadd squid
# pw useradd squid -s /usr/sbin/nologin -d /nonexistent -g squid
# mkdir /cache/www.rd.bj #建立缓存目录
# chown -R squid:squid /cache/www.rd.bj
好了,现在只需要把squid.conf里的
cache_dir diskd /usr/local/squid/cache 256 16 256 Q1=60 Q2=50
改成
cache_dir diskd /cache/www.rd.bj 256 16 256 Q1=60 Q2=50
保存退出,在创建新的缓存目录
# squid -z
好了就补充到这里吧,我们继续我们的探索之旅。
现在squid的配置文件已经测试无误了,那我们还等什么,赶紧测试一下服务叻!
# squid -CDNd1
2007/12/27 14:01:56| Starting Squid Cache version 3.0.STABLE1 for i386-portbld-freebsd6.3...
2007/12/27 14:01:56| Process ID 810
2007/12/27 14:01:56| With 32768 file descriptors available
2007/12/27 14:01:56| DNS Socket created at 0.0.0.0, port 49839, FD 5
2007/12/27 14:01:56| Adding nameserver 192.168.10.40 from /etc/resolv.conf
2007/12/27 14:01:56| User-Agent logging is disabled.
2007/12/27 14:01:56| Referer logging is disabled.
2007/12/27 14:01:56| Unlinkd pipe opened on FD 9
2007/12/27 14:01:56| Local cache digest enabled; rebuild/rewrite every 3600/3600 sec
2007/12/27 14:01:56| Swap maxSize 262144 KB, estimated 20164 objects
2007/12/27 14:01:56| Target number of buckets: 1008
2007/12/27 14:01:56| Using 8192 Store buckets
2007/12/27 14:01:56| Max Mem size: 8192 KB
2007/12/27 14:01:56| Max Swap size: 262144 KB
2007/12/27 14:01:57| Rebuilding storage in /usr/local/squid/cache (DIRTY)
2007/12/27 14:01:57| Using Least Load store dir selection
2007/12/27 14:01:57| Current Directory is /root
2007/12/27 14:01:57| Loaded Icons.
2007/12/27 14:01:57| Accepting accelerated HTTP connections at 192.168.10.30, port 3128, FD 11.
2007/12/27 14:01:57| Accepting ICP messages at 0.0.0.0, port 3130, FD 12.
2007/12/27 14:01:57| HTCP Disabled.
2007/12/27 14:01:57| Configuring Sibling 192.168.10.31/3128/3131
2007/12/27 14:01:57| Configuring Parent 192.168.10.40/80/0
2007/12/27 14:01:57| Ready to serve requests.
2007/12/27 14:02:04| Done scanning /usr/local/squid/cache swaplog (0 entries)
2007/12/27 14:02:04| Finished rebuilding storage from disk.
2007/12/27 14:02:04| 0 Entries scanned
2007/12/27 14:02:04| 0 Invalid entries.
2007/12/27 14:02:04| 0 With invalid flags.
2007/12/27 14:02:04| 0 Objects loaded.
2007/12/27 14:02:04| 0 Objects expired.
2007/12/27 14:02:04| 0 Objects cancelled.
2007/12/27 14:02:04| 0 Duplicate URLs purged.
2007/12/27 14:02:04| 0 Swapfile clashes avoided.
2007/12/27 14:02:04| Took 6.97 seconds ( 0.00 objects/sec).
2007/12/27 14:02:04| Beginning Validation Procedure
2007/12/27 14:02:04| Completed Validation Procedure
2007/12/27 14:02:04| Validated 25 Entries
2007/12/27 14:02:04| store_swap_size = 0
2007/12/27 14:02:04| storeLateRelease: released 0 objects
启动没有什么问题,来我们用浏览器访问一下吧!