0%

源码编译并安装Squid的方法

问题描述

RockyLinux9.4 yum包中的Squid版本是5.5, 不是最新的版本,我需要安装最新版本的Squid。

源码编译并安装Squid的步骤

  • 访问Squid官网,查看最新的稳定版本为 6.10
  • 下载6.10版本的源码,各发行版编译安装Squid的方法参考官方文档

下面给出我在RockyLinux9.4 VMware虚拟机上,编译安装Squid 6.10的过程:

下载依赖

1
2
yum install -y perl gcc autoconf automake make sudo wget
yum install -y libxml2-devel libcap-devel libtool-ltdl-devel

下载Squid源码并编译安装

1
2
3
4
5
6
7
wget https://www.squid-cache.org/Versions/v6/squid-6.10.tar.gz
tar -zxvf squid-6.10.tar.gz
cd squid-6.10

./configure --prefix=/usr --includedir=/usr/include --datadir=/usr/share --bindir=/usr/sbin --libexecdir=/usr/lib/squid --localstatedir=/var --sysconfdir=/etc/squid
make -j4
make install

添加squid用户, 创建Squid日志目录并设置权限

1
2
3
useradd -M -s /sbin/nologin squid
mkdir -p /var/log/squid
chown -R squid:squid /var/log/squid

修改squid配置文件

修改/etc/squid/squid.conf,新增如下配置项:

1
2
3
4
cache_effective_user squid
cache_effective_group squid
cache_log /var/log/squid/cache.log
access_log /var/log/squid/access.log squid

注意事项:

  • 需要指定cache_effective_usercache_effective_group, 一般设置为squid; 注意不能设置成root,否则启动会提示错误。
  • 如果不设置cache_effective_usercache_effective_group, Squid进程的user和group为nobody,启动后会异常退出,报fopen写入cache.log没有权限(13)的错误!
  • 在squid配置文件里自定义cache_log,access_log的路径为/var/log/squid。默认的路径为/var/log, squid用户没有权限写入。

测试Squid配置是否正确

1
2
squid -k parse
squid -z

如果提示报错,根据错误信息修改配置项。

启动Squid

1
2
3
squid # 启动
netstat -anpt | grep squid # Squid默认端口3128, 用netstat查看3128端口是否LISTEN
tcp6 0 0 :::3128 :::* LISTEN pid/(squid-1)

测试Squid

1
curl -x localhost:3128 https://www.baidu.com

停止Squid

1
squid -k shutdown

参考

https://www.squid-cache.org/