Squid是一个缓存Internet 数据的软件,其接收用户的下载申请,并自动处理所下载的数据。当一个用户想要下载一个主页时,可以向Squid 发出一个申请,要Squid 代替其进行下载,然后Squid 连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid 把保存的备份立即传给用户,使用户觉得速度相当快。Squid 可以代理HTTP、FTP、GOPHER、SSL和WAIS等协议并且Squid 可以自动地进行处理,可以根据自己的需要设置Squid,使之过滤掉不想要的东西。
系统环境
- 操作系统:Red Hat Enterprise Linux Server release 6.8 (Santiago)
- Squid版本:squid-3.1.23-24.el6.x86_64
- SELINUX=disabled
安装Squid
检查是否已安装Squid
rpm -qa|grep squid
如果未输入信息,那么就是未安装。
使用yum安装
yum -y install squid
Loaded plugins: fastestmirror, product-id, search-disabled-repos, subscription-manager This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register. Setting up Install Process Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com Resolving Dependencies --> Running transaction check ---> Package squid.x86_64 7:3.1.23-24.el6 will be installed --> Processing Dependency: perl(DBI) for package: 7:squid-3.1.23-24.el6.x86_64 > Running transaction check ---> Package perl-DBI.x86_64 0:1.609-4.el6 will be installed --> Finished Dependency Resolution Dependencies Resolved ============================================================================================================================================================================================================== Package Arch Version Repository Size ============================================================================================================================================================================================================== Installing: squid x86_64 7:3.1.23-24.el6 base 1.8 M Installing for dependencies: perl-DBI x86_64 1.609-4.el6 base 705 k Transaction Summary ============================================================================================================================================================================================================== Install 2 Package(s) Total download size: 2.5 M Installed size: 8.0 M Downloading Packages: (1/2): perl-DBI-1.609-4.el6.x86_64.rpm | 705 kB 00:07 (2/2): squid-3.1.23-24.el6.x86_64.rpm | 1.8 MB 00:45 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Total 41 kB/s | 2.5 MB 01:02 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : perl-DBI-1.609-4.el6.x86_64 1/2 Installing : 7:squid-3.1.23-24.el6.x86_64 2/2 Verifying : 7:squid-3.1.23-24.el6.x86_64 1/2 Verifying : perl-DBI-1.609-4.el6.x86_64 2/2 Installed: squid.x86_64 7:3.1.23-24.el6 Dependency Installed: perl-DBI.x86_64 0:1.609-4.el6 Complete!
配置开机启动
chkconfig --level 35 squid on
至此便已经安装完毕。
squid的配置文件说明
squid 的主配置文件是 /etc/squid/squid.conf,所有squid的设定都是在这个文件里配置,下面我们来讲解一下该文件的配置选项。
http_port 3128 //设置监听的IP与端口号 cache_mem 64 MB //额外提供给squid使用的内存,squid的内存总占用为 X * 10+15+“cache_mem”,其中X为squid的cache占用的容量(以GB为单位), //比如下面的cache大小是100M,即0.1GB,则内存总占用为0.1*10+15+64=80M,推荐大小为物理内存的1/3-1/2或更多。 maximum_object_size 4 MB //设置squid磁盘缓存最大文件,超过4M的文件不保存到硬盘 minimum_object_size 0 KB //设置squid磁盘缓存最小文件 maximum_object_size_in_memory 4096 KB //设置squid内存缓存最大文件,超过4M的文件不保存到内存 cache_dir ufs /var/spool/squid 100 16 256 //定义squid的cache存放路径 、cache目录容量(单位M)、一级缓存目录数量、二级缓存目录数量 logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %<st "%{Referer}>h" "%{User-Agent}>h" %Ss:%Sh //log文件日志格式 access_log /var/log/squid/access.log combined //log文件存放路径和日志格式 cache_log /var/log/squid/cache.log //设置缓存日志 logfile_rotate 60 //log轮循 60天 cache_swap_high 95 //cache目录使用量大于95%时,开始清理旧的cache cache_swap_low 90 //cache目录清理到90%时停止。 acl localnet src 192.168.1.0/24 //定义本地网段 http_access allow localnet //允许本地网段使用 http_access deny all //拒绝所有 visible_hostname squid.david.dev //主机名 cache_mgr mchina_tang@qq.com //管理员邮箱
因Jenkins部署在无法访问公网的机房内,所以,我需要在公司内部机器中安装HTTP(S) Proxy来进行代理访问,安装插件等。也是懒得配置密码了,直接修改如下配置即可。
- http_access deny all //拒绝所有 + http_access allow all //允许所有
此时,在Jenkins中配置http proxy就可以访问Jenkins的插件中心了。