安装系统自带的Squid包
# yum install -y squid
也可以在squid的官网下载 http://www.squid-cache.org/ ,下载好squid,然后编译
./configure --prefix=/usr/local/squid \
--disable-dependency-tracking \
--enable-dlmalloc \
--enable-gnuregex \
--disable-carp \
--enable-async-io=240 \
--with-pthreads \
--enable-storeio=ufs,aufs,diskd,null \
--disable-wccp \
--disable-wccpv2 \
--enable-kill-parent-hack \
--enable-cachemgr-hostname=localhost \
--enable-default-err-language=Simplify_Chinese \
--with-build-environment=POSIX_V6_ILP32_OFFBIG \
--with-maxfd=65535 \
--with-aio \
--disable-poll \
--enable-epoll \
--enable-linux-netfilter \
--enable-large-cache-files \
--disable-ident-lookups \
--enable-default-hostsfile=/etc/hosts \
--with-dl \
--with-large-files \
--enable-removal-policies=heap,lru \
--enable-delay-pools \
--enable-snmp \
--disable-internal-dns
查看squid版本和编译参数
# squid -v
如何实现squid的正向代理
# > /etc/squid/squid.conf
# vim /etc/squid/squid.conf
不使用默认的配置文件,清空它,重新写入如下内容:
http_port 3128
acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl SSL_ports port 443
acl Safe_ports port 80 8080 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localnet
http_access allow localhost
http_access allow all
cache_dir aufs /data/cache 1024 16 256
cache_mem 128 MB
hierarchy_stoplist cgi-bin ?
coredump_dir /var/spool/squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern \.(jpg|png|gif|mp3|xml) 1440 50% 2880 ignore-reload
refresh_pattern . 0 20% 4320
配置文件中有几处阿铭要简单描述一下,第一行的 “http_port 3128” 这个指的是,squid服务启动后将要监听的端口,也可以是80. “cache_dir” 这个用来指定本地磁盘上的缓存目录,后边的1024为大小,单位是M,具体根据你的磁盘大小决定。 “cache_mem” 它用来规定缓存占用内存的大小,即把缓存的东西存到内存里,具体也需要根据你机器的内存定,如果你的机器只是跑Squid服务,那么留给系统512M内存外,其他可以都分给squid, 但阿铭做实验的虚拟机一共才300M内存,所以只分了128M.
配置文件保存后,可以先检测一下是否有语法错误:
# squid -kcheck
如果提示如下信息:
squid: ERROR: No running copy
这说明配置文件没问题了,但squid还未启动。在启动前,我们需要初始化缓存目录:
# mkdir /data/cache
# chown -R squid:squid /data/cache/
# squid -z
初始化完成,执行如下命令启动Squid:
# /etc/init.d/squid start