我使用两台虚拟 Ubuntu 服务器(最新的长期服务器),两台服务器具有相同的配置,并且都运行 Squid 服务和 pcs pacemaker corosync。我有两个节点Squid01
和Squid02
一个虚拟 IP。
问题:当我启动两台服务器时,Squid02
通常是由一台服务器通过启动 Squid 代理服务来执行所有工作,但是Squid01
代理服务会自动禁用并变为非活动状态,因此我关闭Squid02
服务器并在服务器节点之间切换,但Squid02
代理服务仍然处于非活动状态,您必须手动启动它。
它没有看到停止的服务
我需要实现的是,当发生切换时,非活动服务变为活动服务,或者两个服务始终处于工作状态。
我用过这创建集群的示例
但只有一个区别是,我没有 Squid apt-get
,但我使用配置手动创建了它
[Unit]
Description=Squid Web Proxy.
[Service]
Type=simple
PIDFile=/usr/local/squid/var/run/squid.pid
ExecStart=/usr/local/squid/sbin/squid
[Install]
WantedBy=multi-user.target
我跳过了防火墙部分。
答案1
通过如下编辑服务文件解决了此问题:
[Unit]
Description=Squid Proxy.
[Service]
Type=simple
PIDFile=/usr/local/squid/var/run/squid.pid
ExecStartPre=/usr/local/squid/sbin/squid –z
ExecStart=/usr/local/squid/sbin/squid
ExecReload=/bin/kill -HUP $MAINPID
KillMode=mixed
[Install]
WantedBy=multi-user.target
并将 Pacemaker 更新到修复了错误的最新版本。
该解决方案在 Ubuntu Linux 中使用,目前我正在使用具有最新 Squid 和 Pacemaker 的 CentOS,因此这些问题不再存在。