如何部署源码包squid5.9版本一、准备工作
下载源码https://www.squid-cache.org/Versions/v5/squid-5.9.tar.gz
安装依赖
yum install -ygcc gcc-c++make automake autoconf libtool \
perl-ExtUtils-MakeMaker openssl-devel libxml2-devel \
libcap-devel libdb-devel cyrus-sasl-devel krb5-devel \
openldap-devel pam-devel pkgconfig libstdc++-devel \
libcom_err-devel keyutils-libs-devel nss-devel
查看机器gcc和g++,openssl版本
gcc--version
g++--version
openssl version
最低要求
GCC 7.1 及以上
推荐:GCC 8 ~ GCC 11 最稳定,GCC12 + 也能编译但少量参数需要微调
gcc 和 g++ 版本必须保持一致,一个 7.x 一个 9.x 会编译报错
最低支持:OpenSSL 1.0.2
推荐稳定版本:OpenSSL 1.1.1 全系列(1.1.1l ~ 1.1.1w)
可兼容:OpenSSL 3.0.x(3.0 LTS)
不建议:OpenSSL 3.1/3.2 新版容易出现 SSL 握手、证书校验编译警告
CentOS7 默认 gcc4.8.5 太低,必须升级 gcc:
# 安装SCL高版本gcc
yum install centos-release-scl -y
yum install devtoolset-8-gcc devtoolset-8-gcc-c++ devtoolset-8-binutils -y
# 临时启用gcc8
scl enable devtoolset-8 bash
gcc--version
二、部署操作
cd /usr/local (根据自己上传包到服务器的路径再解压源码包)
tar -xvf squid-5.9.tar.xz
cd squid-5.9
编译(用户和目录根据实际情况调整 --prefix=/usr/local/squid --with-default-user=squid)
./configure \
--build=x86_64-linux-gnu \
--host=x86_64-linux-gnu \
--prefix=/usr/local/squid \
--disable-maintainer-mode \
--enable-ssl \
--enable-ssl-crtd \
--enable-delay-pools \
--enable-cache-digests \
--enable-http-violations \
--enable-removal-policies \
--enable-storeio=ufs,aufs \
--enable-poll \
--enable-linux-netfilter \
--enable-underscores \
--enable-auth \
--enable-basic-auth-helpers=NCSA \
--with-openssl
make-j$(nproc)2>&1 | tee build.log
make install
# 初始化缓存目录(首次必须执行)
/data/squid/sbin/squid -z
三、启动方式
1. 检查配置文件语法(修改配置必执行!) /usr/local/squid/sbin/squid -k parse
2. 首次启动前:初始化缓存目录(只执行1次) /usr/local/squid/sbin/squid -z
3.前台启动(调试用,窗口关闭进程就退出) /usr/local/squid/sbin/squid -N 6.4. 后台正常启动(标准启动) /usr/local/squid/sbin/squid
4.重载配置(不中断连接,修改配置后使用) /usr/local/squid/sbin/squid -k reconfigure
5.优雅停止(等待现有连接处理完成) /usr/local/squid/sbin/squid -k shutdown
6.强制立即停止(不推荐生产,会中断连接) /usr/local/squid/sbin/squid -k kill
四、配置自动开机
创建 systemd 系统服务(托管 squid 进程可选)
新建文件:/usr/lib/systemd/system/squid.service
vi /usr/lib/systemd/system/squid.service
[Unit]
Description=Squid 5.9 Web Proxy Server
Documentation=man:squid(8)
After=network.target syslog.target
[Service]
Type=forking
# 修正正确PID路径
PIDFile=/usr/local/squid/var/run/squid.pid
ExecStart=/usr/local/squid/sbin/squid
ExecReload=/usr/local/squid/sbin/squid -k reconfigure
ExecStop=/usr/local/squid/sbin/squid -k shutdown
# 可选:指定运行用户(squid编译默认创建squid用户)
User=squid
Group=squid
PrivateTmp=true
# 崩溃自动重启
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
加载服务并设置开机自启
# 重新加载系统服务
systemctl daemon-reload
# 设置开机启动
systemctl enable squid
# 启动服务
systemctl start squid
# 查看状态
systemctl status squid
# 停止服务
systemctl stop squid
# 重启
systemctl restart squid
# 重载配置(不中断服务)
systemctl reload squid