编译安装squid

概述

什么是squid,简单的说squid是一款代理缓存软件就是加速网站访问的,国内部分cdn服务用的就是squid,cdn大家应该清楚吧,内容分发网络,cdn的作用也就是为了加速网站在全国各地的访问

工作流程

squid的工作流程是怎么样的呢,我举一个例子,我要请求一个网页,我不是直接向网站的服务器请求的,而是向网站的代理服务器,简单来说就是安装了squid的这台服务器请求数据,这台装着squid的服务器如果有你需要的网站页面的话它会直接发送给你,如果没有,它就会代你去向网站的服务器去请求,当squid服务器请求到数据了之后,它会复制一份道自己这里,然后发一份给你,当你第二次要这些网页的时候,squid会直接把它存的页面发送给你。因为网站的服务器我不可能每一个省都部署一个,但是squid服务器却可以,所以部署squid缓存服务器有降低网站服务器压力和带宽的作用,同时也可以让用户更快得得到自己所需要的网页。

问题

每个东西有利也有弊,当你的网页更新了,但是缓存服务器里的数据还没有更新的时候,问题就出现了,用户请求的网页总是旧的网页。导致不能即使更新网站,所以什么东西适合缓存呢,当然是更新少的东西适合缓存了,比如js,css,图片等,而那些更新快的数据就尽量减少缓存了

编译squid

官网:http://www.squid-cache.org/
首先下载源码包,我下载的是3.5.27版本的
wget http://www.squid-cache.org/Versions/v3/3.5/squid-3.5.27.tar.gz
解压
tar -zxvf squid-3.5.27.tar.gz
接着我的编译参数是

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
./configure \
--prefix=/usr/local/squid \
--localstatedir=/usr/local/squid/var \
--sysconfdir=/usr/local/squid/etc \
--with-openssl=/root/software/squid/openssl-1.0.2n \
--enable-dlmalloc \
--enable-gnuregex \
--enable-carp \
--enable-async-io \
--enable-storeio=aufs,diskd,ufs \
--enable-icmp \
--enable-delay-pools \
--enable-removal-policies=heap,lru \
--enable-useragent-log \
--enable-referer-log \
--enable-snmp \
--enable-arp-acl \
--enable-htcp \
--enable-ssl \
--enable-cache-digests \
--with-coss-membuf-size=2097152 \
--enable-poll \
--enable-linux-netfilter \
--enable-x-accelerator-vary \
--enable-stacktrace \
--enable-truncate \
--enable-underscores \
--enable-auth

它们的意思是

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
安装目录/usr/local/squid
缓存日志目录/usr/local/squid/var
配置文件目录/usr/local/squid/etc
指定openssl路径
使用dlmalloc内存分配器
使用gnu正则表达式
使用carp
使用异步io
使用aufs,diskd,ufs存储模块
启用icmp
启用延时池
启用排除策略
激活来自客户的useragent日志
激活来自客户的referer日志
启用snmp
启动arp-acl
启用htcp
启用ssl
启用cache-digests
指定coss内存缓冲大小为2M
启用poll
使用netfilter
启用x-accelerator-vary
启用stacktrace
启用truncate
使主机名可以带下划线
使squid支持所有的验证机制

所以首先我要安装openssl库
下载
wget https://www.openssl.org/source/openssl-1.0.2n.tar.gz
记住解压之后不需要安装,之后在指定openssl路径的编译参数那里加上它的路径就好,还有就是openssl1.1版本是不能使用的,要使用1.0的

接着编译
make -j4
安装
make install

安装完成

欢迎关注Bboysoul的博客www.bboy.app
Have Fun

欢迎关注我的其它发布渠道