高可用代理服务器实现keepalive+squid
〇、前言
之前单机部署了squid代理服务器,现在实现一下高可用。
还有自定义squid的error页面
准备:两台centos7(1C2GB)
三个可用IP,一主一备一虚拟IP(VIP)
一、安装squid(两台)
yum install squid -y
# 具体配置略
二、安装keepalived(两台)
1.安装
yum install -y keepalived
yum install -y net-tools
2.配置
# 先清空原先配置
echo "" > /etc/keepalived/keepalived.conf
# 开始编辑
vim /etc/keepalived/keepalived.conf
# 这边注意网卡名称(interface ens160)和自身IP还有VIP
! Configuration File for keepalived
global_defs {
router_id 本机IP
}
vrrp_script chk_squid {
script "/etc/keepalived/check_port.sh 3128"
interval 2
weight -20
}
vrrp_instance VI_1 {
state BACKUP
interface ens160
virtual_router_id 251
mcast_src_ip 本机IP
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 11111111
}
track_script {
chk_squid
}
virtual_ipaddress {
虚拟IP
}
}
3.编写端口检测脚本(两台)
vim /etc/keepalived/check_port.sh
#!/bin/bash
if [ $# -eq 1 ] && [[ $1 =~ ^[0-9]+ ]];then
[ $(netstat -lntp|grep ":$1 " |wc -l) -eq 0 ] && echo "[ERROR] squid may be not running!" && exit 1 || exit 0
else
echo "[ERROR] need one port!"
exit 1
fi
# 赋予执行权限
chmod +x /etc/keepalived/check_port.sh
4.启动服务
systemctl enable keepalived && systemctl start keepalived
三、自定义squid的error页面
# 页面文件位置如下/usr/share/squid/errors/zh-cn+/ERR_ACCESS_DENIED
[root@squid-slave zh-cn]# cat ERR_ACCESS_DENIED
<html><head>
<meta type="copyright" content="Copyright (C) 1996-2016 The Squid Software Foundation and contributors">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>错误: 不能获取请求的 URL</title>
<style type="text/css"><!--
%l
body
:lang(fa) { direction: rtl; font-size: 100%; font-family: Tahoma, Roya, sans-serif; float: right; }
:lang(he) { direction: rtl; }
--></style>
</head><body id="%c">
<div id="titles">
<h1>错误</h1>
<h2>您所请求的网址(URL)未授权</h2>
</div>
<hr>
<div id="content">
<p>当尝试请求返回 URL内容时遇到下面的错误:<a href="%U">%U</a></p>
<blockquote id="error">
<p><b>访问被拒绝。</b></p>
</blockquote>
<p>Access control configuration prevents your request from being allowed at this time. Please contact your service provider if you feel this is incorrect.</p>
<p>请联系马春旺。工号:***** 邮箱:****** </p>
<br>
</div>
<hr>
<div id="footer">
<p>Powered by 五星电器基础架构部</p>
<!-- %c -->
</div>
</body></html>
[root@squid-slave zh-cn]# systemctl restart squid
重启后即可看到如下:

高可用代理服务器实现keepalive+squid的更多相关文章
- Linux下"负载均衡+高可用"集群的考虑点 以及 高可用方案说明(Keepalive/Heartbeat)
当下Linux运维技术越来越受到企业的关注和追捧, 在某些企业, 尤其是牵涉到电子商务和电子广告类的网站,通常会要求作负载均衡和高可用的Linux集群方案.那么如何实施Llinux集群架构,才能既有效 ...
- 集群高可用之lvs+keepalive
集群高可用之lvs+keepalive keepalive简介: 负载均衡架构依赖于知名的IPVS内核模块,keepalive由一组检查器根据服务器的健康情况动态维护和管理服务器池.keepalive ...
- mysql高可用之LVS + KEEPALIVE + MYSQL
1.架构图 注意 (一) Mysql需要把bind-address的配置去掉,否则无法实现虚拟ip访问 (二) 关闭所有linux防火墙:/sbin/iptables –F(可能没用) (三) ...
- 高可用之KeepAlived(2):keepalived+lvs
*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...
- kubernetes haproxy+keepalive实现master集群高可用
前言 master的HA,实际是apiserver的HA.Master的其他组件controller-manager.scheduler都是可以通过etcd做选举(--leader-elect),而A ...
- Apache+lvs高可用+keepalive(主从+双主模型)
Apache+lvs高可用+keepalive(主从+双主模型) keepalive实验准备环境: httpd-2.2.15-39.el6.centos.x86_64 keepalived-1 ...
- lvs+keepalive构建高可用集群
大纲 一.前言 二.Keepalived 详解 三.环境准备 四.LVS+Keepalived 实现高可用的前端负载均衡器 一.前言 Keepalived使用的vrrp协议方式,虚拟路由 ...
- keepalive高可用
Keepalived软件起初是专门为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能.因此,Keepalived除了能够管理LVS软 ...
- [svc]高并发场景 LVS DR +KeepAlive高可用实现及ka的persistence_timeout参数
LVS-DR+keepalived模式是一种非常经典的常用生产组合 高可用场景及LVS架构 一般都用一(负载)拖多(Server Array)方式 使用LVS架设的服务器集群系统有三个部分组成: (1 ...
随机推荐
- 简述基于CPU的机器码运行过程
引言:会写日志的人不一定是优秀的人,但优秀的人往往是会写日志的 这里涉及五个部分,胡歌,林拜,贾以枚,罗伊人,冯眷眷-林拜老婆 依次对应CPU里的控制器, CPU里的寄存器,存储器,输入电路,输出电路 ...
- Flink1.13.1源码解析-Application on yarn(一)
本篇文章讲述 Flink Application On Yarn 提交模式下,从命令提交到 AM 容器创建 1.脚本入口 flink run-application -t yarn-applicati ...
- NC23053 月月查华华的手机
NC23053 月月查华华的手机 题目 题目描述 月月和华华一起去吃饭了.期间华华有事出去了一会儿,没有带手机.月月出于人类最单纯的好奇心,打开了华华的手机.哇,她看到了一片的QQ推荐好友,似乎华华还 ...
- 阿里 Maven仓库
<?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://mav ...
- Elasticsearch的cmd窗口乱码问题(windows)
elasticsearch 7.6.0 windows版日志乱码问题解决 修改jvm.options,如何重启es即可 新增 -Dfile.encoding=GBK
- 在docker容器中如何自动生成配置文件(以nginx配置为例)
应用场景类似于多个域名要起多个容器,有些参数有些域名需要,有些域名不需要,或者参数的值不太一样,需要去对应的配置文件修改,不太灵活,如果通过变量的方式直接定义在Dockerfile文件中,需要哪些参数 ...
- 调和级数为什么是 O(logn) 的
目录 调和级数 正片 调和级数 调和级数(Harmonic series)定义为 \[H(n)=\sum_{i=1}^n\dfrac 1i \] \(H\) 发散,证明看百度 . 正片 首先我们把 \ ...
- JS中操作数组、字符串的速度比较
对相同轻量级的数组和字符串进行检索: const arr = [1, 2, 3, 4, 5, 6, 7, 8, 'q'] const string = '12345678q' const Q = ...
- YII事件EVENT示例
模型中/** * 在初始化时进行事件绑定 */ public function init() { $this->on(self::EVENT_HELLO,[$this,'sendMail']); ...
- 服务器配置IP
1.服务器系统一般有两个或多个网卡.在企业中一般给服务器网卡配一个可连外网的IP,如172.16.20.22 255.255.255.0 172.16.20.1 方便联网下载安装部分软件,若没有VPN ...