<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>实践案例</title>
    <link>https://llinux.cn/%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1%E4%B8%8E%E9%AB%98%E5%8F%AF%E7%94%A8/%E5%AE%9E%E8%B7%B5%E6%A1%88%E4%BE%8B/</link>
    <description>阿征的运维笔记</description>
    <language>zh</language>
    <atom:link href="https://llinux.cn/%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1%E4%B8%8E%E9%AB%98%E5%8F%AF%E7%94%A8/%E5%AE%9E%E8%B7%B5%E6%A1%88%E4%BE%8B/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>基于 HAProxy &#43; Keepalived 实现高可用</title>
      <link>https://llinux.cn/%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1%E4%B8%8E%E9%AB%98%E5%8F%AF%E7%94%A8/%E5%AE%9E%E8%B7%B5%E6%A1%88%E4%BE%8B/%E5%9F%BA%E4%BA%8E-haproxy-&#43;-keepalived-%E5%AE%9E%E7%8E%B0%E9%AB%98%E5%8F%AF%E7%94%A8-lb/</link>
      
      <guid>https://llinux.cn/%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1%E4%B8%8E%E9%AB%98%E5%8F%AF%E7%94%A8/%E5%AE%9E%E8%B7%B5%E6%A1%88%E4%BE%8B/%E5%9F%BA%E4%BA%8E-haproxy-&#43;-keepalived-%E5%AE%9E%E7%8E%B0%E9%AB%98%E5%8F%AF%E7%94%A8-lb/</guid>
      <description>&lt;h2 id=&#34;架构概览&#34;&gt;架构概览&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#%e6%9e%b6%e6%9e%84%e6%a6%82%e8%a7%88&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Keepalived 配置两个 VIP：一个对外提供服务，一个对内提供服务。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;对外 VIP：绑定在公网网卡（或防火墙 NAT 后），暴露给互联网用户，配合防火墙规则严格限制来源/端口/协议。&lt;/li&gt;&#xA;&lt;li&gt;对内 VIP：绑定在内网网卡，供内网服务器、办公网络、跳板机等访问，不经过公网，安全性更高。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;highlight code-sample&#34;&gt;&#xA;  &#xA;  &lt;div class=&#34;includecode&#34; &gt;&#xA;    &lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;互联网用户&#xA;     ↓ (公网 IP → NAT)&#xA;防火墙 → 对外 VIP (e.g. 10.0.0.100) → HAProxy节点1/2 (Keepalived 主备)&#xA;     &#xA;内网用户/服务器&#xA;     ↓ (内网直接访问)&#xA;     → 对内 VIP (e.g. 192.168.1.100) → HAProxy节点1/2 (Keepalived 主备)&#xA;&#xA;后端真实服务器 (web/api/mysql 等) ← 只接受来自 HAProxy 的内网流量&lt;/code&gt;&lt;/pre&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&lt;h2 id=&#34;环境说明&#34;&gt;环境说明&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#%e7%8e%af%e5%a2%83%e8%af%b4%e6%98%8e&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;虚拟机名称&lt;/th&gt;&#xA;          &lt;th&gt;hostname&lt;/th&gt;&#xA;          &lt;th&gt;OS&lt;/th&gt;&#xA;          &lt;th&gt;CPU&lt;/th&gt;&#xA;          &lt;th&gt;内存&lt;/th&gt;&#xA;          &lt;th&gt;磁盘&lt;/th&gt;&#xA;          &lt;th&gt;IP&lt;/th&gt;&#xA;          &lt;th&gt;VIP&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;生产环境-北京机房-负载均衡01&lt;/td&gt;&#xA;          &lt;td&gt;prod-bj-lb01&lt;/td&gt;&#xA;          &lt;td&gt;Ubuntu 22.04&lt;/td&gt;&#xA;          &lt;td&gt;8U&lt;/td&gt;&#xA;          &lt;td&gt;16G&lt;/td&gt;&#xA;          &lt;td&gt;300G&lt;/td&gt;&#xA;          &lt;td&gt;172.16.0.230&lt;/td&gt;&#xA;          &lt;td&gt;172.16.0.100（对内）、172.16.0.200（对外）&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;生产环境-北京机房-负载均衡02&lt;/td&gt;&#xA;          &lt;td&gt;prod-bj-lb02&lt;/td&gt;&#xA;          &lt;td&gt;Ubuntu 22.04&lt;/td&gt;&#xA;          &lt;td&gt;8U&lt;/td&gt;&#xA;          &lt;td&gt;16G&lt;/td&gt;&#xA;          &lt;td&gt;300G&lt;/td&gt;&#xA;          &lt;td&gt;172.16.0.231&lt;/td&gt;&#xA;          &lt;td&gt;172.16.0.100（对内）、172.16.0.200（对外）&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;注意事项&#34;&gt;注意事项&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#%e6%b3%a8%e6%84%8f%e4%ba%8b%e9%a1%b9&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;两台主机需位于同二层网络，否则 VIP 无法正常漂移（因为依赖 VRRP 协议）。&lt;/li&gt;&#xA;&lt;li&gt;两台虚拟机跨机房或跨物理机部署，以避免单点故障。&lt;/li&gt;&#xA;&lt;li&gt;两台 HAProxy 的配置文件（&lt;code&gt;/etc/haproxy/haproxy.cfg&lt;/code&gt;）需保持一致，包括后端服务器列表、健康检查配置等。&lt;/li&gt;&#xA;&lt;li&gt;Keepalived 使用 VRRP 协议（组播），记得在防火墙中放行相关流量，否则会出现“脑裂”（两台机器都抢占 VIP）。&lt;/li&gt;&#xA;&lt;li&gt;确保两台虚拟机的时间同步。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;第一阶段环境准备两台机器同步操作&#34;&gt;第一阶段：环境准备（两台机器同步操作）&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#%e7%ac%ac%e4%b8%80%e9%98%b6%e6%ae%b5%e7%8e%af%e5%a2%83%e5%87%86%e5%a4%87%e4%b8%a4%e5%8f%b0%e6%9c%ba%e5%99%a8%e5%90%8c%e6%ad%a5%e6%93%8d%e4%bd%9c&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;1-修改内核参数&#34;&gt;1. 修改内核参数：&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#1-%e4%bf%ae%e6%94%b9%e5%86%85%e6%a0%b8%e5%8f%82%e6%95%b0&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;必须启用内核的非本地IP绑定功能，否则HAProxy在尝试监听VIP时可能启动失败（原因是两台机器中总有一台是从节点，从节点默认无法绑定VIP）。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;highlight code-sample&#34;&gt;&#xA;  &#xA;  &lt;div class=&#34;includecode&#34; &gt;&#xA;    &lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 允许内核绑定非本地&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;net.ipv4.ip_nonlocal_bind = 1&amp;#34;&lt;/span&gt; &amp;gt;&amp;gt; /etc/sysctl.conf&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 加载新的内核参数&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sysctl -p&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&lt;h3 id=&#34;2-安装-haproxy-和-keepalived&#34;&gt;2. 安装 HAProxy 和 Keepalived&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#2-%e5%ae%89%e8%a3%85-haproxy-%e5%92%8c-keepalived&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;highlight code-sample&#34;&gt;&#xA;  &#xA;  &lt;div class=&#34;includecode&#34; &gt;&#xA;    &lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;apt install -y haproxy keepalived&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&lt;h3 id=&#34;3-创建健康检查脚本&#34;&gt;3. 创建健康检查脚本&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#3-%e5%88%9b%e5%bb%ba%e5%81%a5%e5%ba%b7%e6%a3%80%e6%9f%a5%e8%84%9a%e6%9c%ac&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;在两台机器上创建一个脚本，用于监控 HAProxy 的状态。如果 HAProxy 挂了，Keepalived 会自动漂移 VIP。&lt;/p&gt;</description>
    </item>
    
  </channel>
</rss>
