高可用代理服务器实现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 ...
随机推荐
- 把excel的数据导入到SQLSERVER里面,excel的字符串时间在导入sql库显示datetime 数据类型的转换产生一个超出范围的值
这是我Excel导入的数据,准备把这个varchar(50)时间导入我的userInfo表中的出生日期字段datatime,如果你的数据正常,是可以导入的, 但是有些日期可能超出datatime的最大 ...
- android stdio开发抖音自动点赞案例
最近做了一个安卓开发自动刷抖音. 点赞. 评论等等养号行为. 总结一下知识点和遇到的一些问题: 知识点: 1. 使用acessibility mode 对抖音自动化操作. android stdio中 ...
- Linux系列之文本操作命令
前言 Linux 有八个常用的文本操作命令:cat.head.tail.nl.grep.sed.more.less.本文介绍它们的区别和简单用法. cat命令 显示文本的最基本命令. cat file ...
- 👨💻Mybatis源码我搞透了,面试来问吧!写了134个源码类,1.03万行代码!
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言:手撸一万行! 完结撒花:4个月.20章.134个类.1.03万行代码! 22年3月初 ...
- iis 7 -mvc WebApi {"message":"an error has occurred"}
iis 7 - WebApi's {"message":"an error has occurred"} 原因是web api的Controller有两个类名重 ...
- 002 Redis使用及API
Redis的使用及相关API 1.作用: 提高查询效率 一定程度上可以减轻数据库服务器的冲击压力,从而保护了数据库 //1.是否包含key redisTemplate.hasKey(key) //2. ...
- 自定义注解_格式&本质和自定义注解_属性定义
自定义注解: 格式: public @interface 注解名称{} 本质:注解本质上就是一个接口,该接口默认继承Annotation接口 public interface MyAnno exten ...
- java关键字的概念与特征和标识符的概念和规则
什么是关键字 比如说邮箱地址 abc@qq.com 123abc@qq.com 这样的只要没有人占用都是和发布的 那么这样呢 hahah@enen@itcast.cn呢 @是电子邮箱当中有特殊含义的 ...
- 解决 Vue 部署在域名子路由 问题
我们先看下官方说明 默认情况下,Vue CLI 会假设你的应用是被部署在一个域名的根路径上,例如 https://www.my-app.com/ .如果应用被部署在一个子路径上,你就需要用这个选项指定 ...
- 5.4 NOI模拟
\(5.4\ NOI\)模拟 \(T1\) 想到分讨,但是暴力输出一下方案之后有很多特别的情况要讨论,就弃了... 假设\(a\)是原序列,\(b\)是我们得到的序列 设\(i\)是最长公共前缀,\( ...