<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
    <channel>
            <title>break</title>
            <link>https://qiqi.icu</link>
        <generator>Halo 1.5.6</generator>
        <lastBuildDate>Wed, 15 Apr 2026 21:00:08 CST</lastBuildDate>
                <item>
                    <title>
                        <![CDATA[拒绝丑陋终端！Mac 顶级开发环境 Ghostty + Oh My Zsh 终极装修指南]]>
                    </title>
                    <link>https://qiqi.icu/archives/ghostty-oh-my-zsh-guide</link>
                    <description>
                            <![CDATA[<h1 id="拒绝丑陋终端mac-顶级开发环境-ghostty--oh-my-zsh-终极装修指南">拒绝丑陋终端！Mac 顶级开发环境 Ghostty + Oh My Zsh 终极装修指南</h1><blockquote><p>本文转载自博客园，作者：sueyyyy</p></blockquote><h2 id="第一步选对脸面--颜值即正义的-ghostty-终端">第一步：选对&quot;脸面&quot; —— 颜值即正义的 Ghostty 终端</h2><p>下载地址：<a href="https://ghostty.org/download">https://ghostty.org/download</a></p><p>安装后第一次打开，你可能会在心里嘀咕：&quot;就这？和自带的'小黑盒'有什么区别？&quot; 别急，按下 Cmd + ,，你会发现它的配置是一片纯洁的空白——这正是我们要大展身手的地方。</p><p>不过放心，作为你的贴心&quot;包工头&quot;，我已经为你准备好了一套开箱即用的&quot;精装房&quot;配置。直接复制保存至你的配置文件，然后重启 Ghostty，见证奇迹吧！</p><p>配置文件地址：<a href="https://raw.githubusercontent.com/suversal/warehouse/refs/heads/main/ghostty/config">https://raw.githubusercontent.com/suversal/warehouse/refs/heads/main/ghostty/config</a></p><p>效果如下。虽然这时候看着还算个&quot;毛坯加上了白墙&quot;，但基础样式已经成型，而且我们还偷偷藏了几个超好用的快捷键进去（具体可以在配置文件中查看）。</p><p><strong>核心快捷键</strong>（建议刻在 DNA 里）：</p><ul><li><strong>Cmd + Shift + ,</strong>：一键重载配置（改完配置不用傻乎乎重启啦）</li><li><strong>Ctrl + ~</strong>：老板键！全局呼出/隐藏终端（传说中的 Quake 模式，极其帅气）</li><li><strong>Cmd + D / Cmd + Shift + D</strong>：左右/上下分屏（生产力翻倍的秘密）</li></ul><h2 id="第二步穿上西装--oh-my-zsh--agnoster-主题">第二步：穿上西装 —— Oh My Zsh &amp; Agnoster 主题</h2><h3 id="21-引入灵魂">2.1 引入灵魂</h3><p>官方仓库：<a href="https://github.com/ohmyzsh/ohmyzsh">https://github.com/ohmyzsh/ohmyzsh</a></p><p>打开你的终端（自带的或者刚装好的 Ghostty 都行），复制粘贴这行命令：</p><pre><code class="language-bash">sh -c &quot;$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)&quot;</code></pre><p>运行完毕后，初见端倪，终端已经有了一些基础的色彩和样式，不再是死气沉沉的纯文本了。</p><h3 id="22-核心配置文件zshrc你的控制中心">2.2 核心配置文件：.zshrc（你的控制中心）</h3><p><strong>注意</strong>：Oh My Zsh 的所有魔法都藏在你的用户家目录下的 .zshrc 文件里。</p><p>第一次安装时，它会覆盖你原有的配置。别慌！作为一个成熟的安装脚本，它贴心地为你留了后路。它只是把旧文件重命名备份了，并没有永久删除。</p><p><strong>如果你想找回曾经的配置，只需两步：</strong></p><p><strong>1. 寻找备份文件</strong></p><p>在终端中输入以下命令：</p><pre><code class="language-bash">ls -a ~ | grep .zshrc</code></pre><p>你通常会看到类似以下的文件列表：</p><ul><li><code>.zshrc</code> (现在被 Oh My Zsh 接管的新文件)</li><li><code>.zshrc.pre-oh-my-zsh</code> (高亮！这就是你原来的旧配置备份！)</li></ul><p><strong>2. 找回记忆</strong></p><p>因为我们现在要拥抱 Oh My Zsh 的新世界，所以最好不要直接覆盖回去。你可以打开备份文件，像挑肥拣瘦一样把你需要的旧内容复制出来：</p><pre><code class="language-bash">open -e ~/.zshrc.pre-oh-my-zsh</code></pre><p>这会用自带的&quot;文本编辑&quot;打开旧文件。把你攒了多年的 alias（别名）、环境变量（比如 export PATH=...）或者项目相关的祖传配置复制出来，稳稳地粘贴到新的 .zshrc 文件的末尾。</p><h3 id="23-设置主题agnoster高级感拉满的利器">2.3 设置主题：Agnoster（高级感拉满的利器）</h3><p>我们在 .zshrc 中找到主题配置行，将其修改为比较热门的 agnoster 主题：</p><pre><code class="language-bash">ZSH_THEME=&quot;agnoster&quot;</code></pre><p>保存并重载（source ~/.zshrc）后，终端的色彩瞬间丰富了起来，配合经典的箭头样式，整个终端的&quot;高级感&quot;直接溢出屏幕。</p><p><strong>建议</strong>：想要自定义程序更高更美观流畅的话，可以使用 powerlevel10k 主题</p><pre><code class="language-bash"># 安装git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k# 修改主题ZSH_THEME=&quot;powerlevel10k/powerlevel10k&quot;# 安装后配置p10k configure</code></pre><p>⚠️ <strong>关于 Ghostty 的特别防坑提醒</strong>：</p><p>Ghostty 支持极其硬核的高级特性（如 24-bit color 和 GPU 加速），但在配置时需要注意...</p><h3 id="24-zshrc-进阶建议配置老司机的秘密">2.4 .zshrc 进阶建议配置（老司机的秘密）</h3><p><strong>1. 精简用户信息（隐藏就是最高级的炫耀）</strong></p><p>每次敲命令前面都带着长长的 <code>用户名@主机名</code>，实在是不够极简。在 .zshrc 的最后一行添加：</p><pre><code class="language-bash">DEFAULT_USER=$USER</code></pre><p>然后执行 <code>source ~/.zshrc</code>。这样你的终端就会隐藏掉冗长的用户名，变得极简且精致。</p><p><strong>2. 缩短路径显示（治好 agnoster 的痛点）</strong></p><p>agnoster 主题有一个致命伤：如果你进入了一个&quot;俄罗斯套娃&quot;般的极深项目目录（比如 <code>~/Documents/work/project/src/main/java/com/your/company/...</code>），那这串路径能直接占满整行，留给你敲命令的地方比在北京买个卫生间还小。</p><p><strong>一针见血的解法</strong>：在 .zshrc 的最末尾添加这段代码，它会将过长的路径优雅地缩写（只显示最后两个层级的目录）：</p><pre><code class="language-bash"># 限制路径显示层级，只显示最后两个目录prompt_dir() {  prompt_segment blue $CURRENT_FG '%2~'}</code></pre><p><strong>3. 配置 Ghostty 的鼠标点击跳转（宛如 IDE 的体验）</strong></p><p>Ghostty 有个神级功能：你可以像在 IDEA 或 VS Code 里一样，按住键盘按键点击路径，直接打开文件！在 <code>~/.config/ghostty/config</code> 中确保有这一行：</p><pre><code class="language-bash"># 按住 Shift 点击路径或 URL 可直接捕获打开（Ghostty 配置）mouse-shift-capture = true</code></pre><h2 id="第三步注入灵魂--黑科技插件">第三步：注入灵魂 —— 黑科技插件</h2><h3 id="31-自动补全--语法高亮手残党福音">3.1 自动补全 &amp; 语法高亮（手残党福音）</h3><p>这是提升终端体验最明显、最直观的两个功能。依次在终端运行以下两条命令进行安装：</p><pre><code class="language-bash"># 1. zsh-autosuggestions（自动补全，基于历史记录，敲过一次终身受用）：git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions# 2. zsh-syntax-highlighting（语法高亮，命令输错会变红，防呆设计）：git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting</code></pre><p><strong>最后一步激活</strong>：在你的 .zshrc 文件里找到 <code>plugins=(git)</code> 这一行，大胆地把它改造成：</p><pre><code class="language-bash">plugins=(git zsh-autosuggestions zsh-syntax-highlighting)</code></pre><p>既然都改了 plugins，不如再加点料。将 plugins 修改为：</p><pre><code class="language-bash">plugins=(git z extract zsh-autosuggestions zsh-syntax-highlighting)</code></pre><ul><li><strong>z</strong>：智能路径跳转。比如你经常去 <code>~/Documents/work/sentinel</code>，下次只需输入 <code>z sen</code> 就能瞬间瞬移过去，再也不用像个憨憨一样一层层 cd 敲 Tab 了。</li><li><strong>extract</strong>：万能解压。不管是 .zip、.tar.gz 还是反人类的 .7z，以后统一只用一个命令解决战斗：<code>x 文件名</code>。（忘掉那些 <code>tar -zxvf</code> 的绕口令吧！）</li></ul><h3 id="33-推荐插件">3.3 推荐插件</h3><p>以下三个工具日常使用频率也很高，感兴趣可以搜索自行安装：</p><table><thead><tr><th>工具</th><th>角色</th><th>快捷键</th><th>你的使用场景</th></tr></thead><tbody><tr><td>zoxide</td><td>任意门</td><td><code>z &lt;关键词&gt;</code></td><td>瞬移到正经访问过的目录，无需一层层 cd 也不用记住文件夹全路径</td></tr><tr><td>fzf</td><td>模糊过滤器</td><td>Ctrl + R</td><td>在本地最近的历史记录里快速闪查</td></tr><tr><td>Atuin</td><td>时光机</td><td>Ctrl + H</td><td>可以自动同步不同服务器操作命令，跨机搜索</td></tr></tbody></table><h2 id="第四步让-ls-再次伟大eza">第四步：让 ls 再次伟大：eza</h2><p>是时候抛弃简陋的自带 ls 了。使用 <strong>eza</strong> 代替它，你将获得一个自带图标、自带 Git 状态标识的&quot;极品&quot;列表效果。</p><h3 id="41-极速安装">4.1 极速安装：</h3><pre><code class="language-bash">brew install eza</code></pre><h3 id="42-别名配置注入灵魂">4.2 别名配置（注入灵魂）</h3><p>安装完成后，最精彩的部分来了。打开你的 .zshrc，在文件末尾添加以下别名（Alias）：</p><pre><code class="language-bash"># 使用 eza 代替传统的 ls，添加图标、显示 Git 状态、按目录优先排序alias ls='eza --icons --git --group-directories-first'alias ll='eza -lh --icons --git --group-directories-first'alias lt='eza --tree --level=2 --icons'  # 树状显示，洞察项目结构的神器</code></pre><p>保存并运行 <code>source ~/.zshrc</code>。</p><p><strong>见证奇迹的时刻到了！</strong></p><p>现在，在你的目录或者任何一个 Java 项目目录下输入 <code>ls</code> 或 <code>ll</code>，你会看到：</p><ul><li>文件夹前面有专属的目录图标 📁</li><li>.java 或其他代码文件前面会出现迷人的语言图标 ☕</li><li>如果这是一个 Git 仓库，文件权限旁边会直白地告诉你该文件是 Modified 还是 New！</li></ul><h2 id="第五步终极杀器--yazi-文件管理器">第五步：终极杀器 —— Yazi 文件管理器</h2><p>到这里我们的 Ghostty 已经基本武装到了牙齿。但是等一下，我还要掏出一个压箱底的神器！</p><p><strong>Yazi</strong> = 新一代&quot;超快 + 类 GUI 体验&quot;的终端文件管理器，用 Rust 编写，快到起飞。</p><h3 id="51-全家桶安装">5.1 全家桶安装</h3><p>官方文档指路：<a href="https://yazi-rs.github.io/docs/installation#homebrew">https://yazi-rs.github.io/docs/installation#homebrew</a></p><p>一次性安装 Yazi 及它依赖的各种预览工具：</p><pre><code class="language-bash">brew install yazi ffmpeg-full sevenzip jq poppler fd ripgrep fzf zoxide resvg imagemagick-full font-symbols-only-nerd-font</code></pre><p>⚠️ <strong>注</strong>：因为依赖比较全（涵盖了视频、图片、PDF的预览支持），安装可能需要泡杯咖啡耐心等待个 10 分钟左右。</p><p>安装之后，在终端中输入 <code>yazi</code> 命令打开。如果看到类似下方的界面，恭喜你成功了！现在你可以直接脱离鼠标，用纯键盘在终端里丝滑地管理文件了。</p><h3 id="52-基础操作手感宛如打游戏">5.2 基础操作（手感宛如打游戏）</h3><p>在终端输入 <code>y</code> 或 <code>yazi</code> 启动。它的操作逻辑极其符合直觉（Vim 党的狂欢）：</p><table><thead><tr><th>按键</th><th>功能</th></tr></thead><tbody><tr><td>← / h</td><td>退回上一级目录</td></tr><tr><td>↓ / j</td><td>向下移动光标</td></tr><tr><td>↑ / k</td><td>向上移动光标</td></tr><tr><td>→ / l</td><td>进入目录或打开文件</td></tr></tbody></table><ul><li><strong>智能预览</strong>：当你停在一个文件上时，右侧窗口会自动显示内容（代码高亮展示、图片直接预览、PDF 甚至视频信息一览无余）</li><li><strong>退出</strong>：轻按 <code>q</code></li></ul><h3 id="53-进阶快捷键效率狂魔必备">5.3 进阶快捷键（效率狂魔必备）</h3><table><thead><tr><th>按键</th><th>功能</th></tr></thead><tbody><tr><td>Enter</td><td>顺滑打开文件（通常会调用你的默认编辑器或 Mac 的关联程序）</td></tr><tr><td>Space</td><td>选中/取消选中文件（用于批量操作，极其好用）</td></tr><tr><td>y</td><td>复制文件 (Yank / Copy)</td></tr><tr><td>x</td><td>剪切文件 (Cut)</td></tr><tr><td>p</td><td>粘贴文件 (Paste)</td></tr><tr><td>d</td><td>删除文件到废纸篓 (Delete)</td></tr></tbody></table><h3 id="54-让-yazi-体验满级的两个隐藏配置">5.4 让 Yazi 体验满级的两个隐藏配置</h3><h4 id="a-解决退出即失踪的痛点">A. 解决&quot;退出即失踪&quot;的痛点</h4><p>默认情况下，你在 Yazi 里如入无人之境地切换了半天目录，按 q 退出后，发现终端居然还停留在你最初进入 Yazi 时的那个老地方。这怎么能忍？</p><p><strong>老中医偏方</strong>：在你的 .zshrc 末尾添加这个官方强烈推荐的 Hook 脚本：</p><pre><code class="language-bash">function y() {  local tmp=&quot;$(mktemp -t &quot;yazi-cwd.XXXXXX&quot;)&quot;  yazi &quot;$@&quot; --cwd-file=&quot;$tmp&quot;  if cwd=&quot;$(cat -- &quot;$tmp&quot;)&quot; &amp;&amp; [ -n &quot;$cwd&quot; ] &amp;&amp; [ &quot;$cwd&quot; != &quot;$PWD&quot; ]; then    builtin cd -- &quot;$cwd&quot;  fi  rm -f -- &quot;$tmp&quot;}</code></pre><p>保存并 <code>source ~/.zshrc</code>。</p><p>以后你只需输入极其简短的 <strong>y</strong> 来启动 Yazi。当你退出时，终端会自动 cd 到你最后停留在 Yazi 里的那个目录。完美衔接！</p><h4 id="b-在-ghostty-中享受原生的图片预览">B. 在 Ghostty 中享受原生的图片预览</h4><p>由于你尊贵地选择了 Ghostty 终端，它原生支持顶级的 Kitty 图形协议！</p><p>这意味着 Yazi 会自动识别你的终端环境并开启高清图片预览。赶紧去找个存满壁纸或表情包的文件夹试试吧——那种在纯文字终端里丝滑刷图的反差感，真的会让你爽到停不下来！</p><hr /><p>至此，你的 Mac 终端&quot;精装工程&quot;已经全面竣工。尽情享受这极速、高颜值且极具生产力的命令行世界吧！</p><p><strong>原文地址</strong>：<a href="https://www.cnblogs.com/sueyyyy/p/19748613">https://www.cnblogs.com/sueyyyy/p/19748613</a></p>]]>
                    </description>
                    <pubDate>Wed, 15 Apr 2026 21:00:08 CST</pubDate>
                </item>
                <item>
                    <title>
                        <![CDATA[Apache APISIX：云原生时代的 API 网关利器]]>
                    </title>
                    <link>https://qiqi.icu/archives/apache-apisix-api-gateway-guide</link>
                    <description>
                            <![CDATA[<h1 id="apache-apisix云原生时代的-api-网关利器">Apache APISIX：云原生时代的 API 网关利器</h1><p><img src="https://raw.githubusercontent.com/apache/apisix/master/logos/apache-apisix.png" alt="APISIX Logo" /></p><blockquote><p><strong>APISIX</strong> 是一个动态、实时、高性能的 API 网关，提供负载均衡、动态上游、灰度发布、服务熔断、身份认证、可观测性等丰富的流量管理功能。</p></blockquote><hr /><h2 id="-目录">📋 目录</h2><ol><li><a href="#什么是-apisix">什么是 APISIX</a></li><li><a href="#核心特性">核心特性</a></li><li><a href="#架构设计">架构设计</a></li><li><a href="#与竞品对比">与竞品对比</a></li><li><a href="#快速入门">快速入门</a></li><li><a href="#实际应用场景">实际应用场景</a></li><li><a href="#总结">总结</a></li></ol><hr /><h2 id="什么是-apisix">什么是 APISIX</h2><p><strong>Apache APISIX</strong> 是由 Apache 软件基金会孵化的开源项目，于 2020 年成为 Apache 顶级项目（Top-Level Project）。它是一个<strong>云原生、动态、实时、高性能</strong>的 API 网关，基于 <strong>OpenResty + etcd</strong> 构建。</p><h3 id="诞生的背景">诞生的背景</h3><p>随着微服务架构的普及，API 网关的重要性日益凸显：</p><ul><li>单体应用拆分为成百上千个微服务</li><li>服务间通信复杂度指数级增长</li><li>流量管理、安全防护、可观测性需求迫切</li></ul><p>传统的 Nginx 虽然性能优秀，但配置变更需要 reload，无法满足动态、实时的流量管理需求。APISIX 正是为解决这一痛点而生。</p><hr /><h2 id="核心特性">核心特性</h2><h3 id="-1-动态配置---无需重启">🚀 1. 动态配置 - 无需重启</h3><p>APISIX 的最大亮点是<strong>完全动态</strong>：</p><ul><li>添加/修改路由、上游、插件无需重启服务</li><li>配置变更通过 etcd 实时推送，毫秒级生效</li><li>支持多集群配置同步</li></ul><pre><code class="language-bash"># 创建一条路由（即时生效）curl http://127.0.0.1:9180/apisix/admin/routes/1 \  -H 'X-API-KEY: your-api-key' -X PUT -d '{  &quot;uri&quot;: &quot;/hello&quot;,  &quot;upstream&quot;: {    &quot;type&quot;: &quot;roundrobin&quot;,    &quot;nodes&quot;: {      &quot;127.0.0.1:1980&quot;: 1    }  }}'</code></pre><h3 id="-2-丰富的插件生态">🔌 2. 丰富的插件生态</h3><p>内置 <strong>80+</strong> 开箱即用的插件：</p><table><thead><tr><th>类别</th><th>代表插件</th><th>功能</th></tr></thead><tbody><tr><td><strong>认证鉴权</strong></td><td>key-auth, jwt-auth, oauth2, ldap-auth</td><td>身份验证与授权</td></tr><tr><td><strong>安全防护</strong></td><td>cors, ip-restriction, ua-restriction, referer-restriction</td><td>访问控制</td></tr><tr><td><strong>流量控制</strong></td><td>limit-req, limit-conn, limit-count, request-validation</td><td>限流限速</td></tr><tr><td><strong>可观测性</strong></td><td>prometheus, skywalking, zipkin, elasticsearch-logger</td><td>监控追踪</td></tr><tr><td><strong>协议转换</strong></td><td>grpc-transcode, http-logger, dubbo-proxy</td><td>协议适配</td></tr><tr><td><strong>Serverless</strong></td><td>serverless-functions, aws-lambda, openwhisk</td><td>函数计算</td></tr></tbody></table><h3 id="-3-极致性能">⚡ 3. 极致性能</h3><p>基于 OpenResty（Nginx + LuaJIT）构建，性能表现优异：</p><ul><li><strong>QPS</strong>: 单核可达 18,000+ 请求/秒</li><li><strong>延迟</strong>: P99 延迟低于 1 毫秒</li><li><strong>内存</strong>: 路由热加载，内存占用低</li></ul><blockquote><p>官方基准测试：在 AWS 8 核机器上，APISIX 的 QPS 是 Kong 的 2 倍，延迟只有 Kong 的一半。</p></blockquote><h3 id="-4-云原生友好">☸️ 4. 云原生友好</h3><ul><li><strong>原生 Kubernetes 支持</strong>：通过 Ingress Controller 无缝对接 K8s</li><li><strong>服务发现</strong>：支持 Consul, Nacos, Eureka, DNS 等多种服务注册中心</li><li><strong>多语言开发</strong>：支持 Go, Java, Python, JavaScript 等语言编写自定义插件</li></ul><hr /><h2 id="架构设计">架构设计</h2><p><img src="https://apisix.apache.org/zh/assets/images/apisix-architecture-1-7f6eaddaec6d59c69c7cf994f14a7b47.png" alt="APISIX 架构图" /></p><h3 id="控制平面与数据平面分离">控制平面与数据平面分离</h3><table><thead><tr><th>组件</th><th>职责</th><th>技术栈</th></tr></thead><tbody><tr><td><strong>控制平面</strong></td><td>管理配置、API 接口、Dashboard</td><td>Go + etcd</td></tr><tr><td><strong>数据平面</strong></td><td>处理流量、执行插件</td><td>OpenResty (Nginx + LuaJIT)</td></tr><tr><td><strong>配置中心</strong></td><td>存储配置、实时同步</td><td>etcd</td></tr></tbody></table><h3 id="数据流向">数据流向</h3><pre><code>┌─────────────┐     ┌─────────────┐     ┌─────────────┐│   Client    │────▶│   APISIX    │────▶│  Upstream   ││             │     │  (OpenResty)│     │  (Backend)  │└─────────────┘     └──────┬──────┘     └─────────────┘                           │                           ▼                    ┌─────────────┐                    │    etcd     │                    │  (配置中心)  │                    └─────────────┘</code></pre><ol><li>管理员通过 Admin API 或 Dashboard 修改配置</li><li>配置写入 etcd</li><li>APISIX 监听 etcd 变更，实时加载新配置</li><li>客户端请求到达 APISIX，匹配路由并执行插件链</li><li>请求被代理到上游服务</li></ol><hr /><h2 id="与竞品对比">与竞品对比</h2><p><img src="https://landscape.cncf.io/images/left-logo.svg" alt="API Gateway Comparison" /></p><h3 id="apisix-vs-kong-vs-nginx">APISIX vs Kong vs Nginx</h3><table><thead><tr><th>特性</th><th><strong>APISIX</strong></th><th>Kong</th><th>Nginx</th></tr></thead><tbody><tr><td><strong>动态配置</strong></td><td>✅ 完全动态</td><td>⚠️ 部分动态</td><td>❌ 需 reload</td></tr><tr><td><strong>性能</strong></td><td>⭐⭐⭐⭐⭐</td><td>⭐⭐⭐⭐</td><td>⭐⭐⭐⭐⭐</td></tr><tr><td><strong>插件数量</strong></td><td>80+</td><td>50+</td><td>需自行开发</td></tr><tr><td><strong>K8s 集成</strong></td><td>⭐⭐⭐⭐⭐</td><td>⭐⭐⭐⭐</td><td>⭐⭐⭐</td></tr><tr><td><strong>多语言插件</strong></td><td>✅ 支持</td><td>❌ 仅 Lua</td><td>❌ N/A</td></tr><tr><td><strong>开源协议</strong></td><td>Apache 2.0</td><td>Apache 2.0</td><td>BSD</td></tr><tr><td><strong>社区活跃度</strong></td><td>⭐⭐⭐⭐⭐</td><td>⭐⭐⭐⭐</td><td>⭐⭐⭐⭐</td></tr></tbody></table><h3 id="选择建议">选择建议</h3><ul><li><strong>选择 APISIX</strong>：需要极致性能、动态配置、丰富插件、云原生场景</li><li><strong>选择 Kong</strong>：需要成熟的商业支持、企业级功能</li><li><strong>选择 Nginx</strong>：简单反向代理、静态资源服务</li></ul><hr /><h2 id="快速入门">快速入门</h2><h3 id="使用-docker-一键启动">使用 Docker 一键启动</h3><pre><code class="language-bash"># 启动 APISIX + etcd + Dashboardgit clone https://github.com/apache/apisix-docker.gitcd apisix-docker/exampledocker-compose -p docker-apisix up -d</code></pre><h3 id="配置第一条路由">配置第一条路由</h3><pre><code class="language-bash"># 1. 创建上游服务curl http://127.0.0.1:9180/apisix/admin/upstreams/1 \  -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '{  &quot;type&quot;: &quot;roundrobin&quot;,  &quot;nodes&quot;: {    &quot;httpbin.org:80&quot;: 1  }}'# 2. 创建路由规则curl http://127.0.0.1:9180/apisix/admin/routes/1 \  -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '{  &quot;uri&quot;: &quot;/get&quot;,  &quot;upstream_id&quot;: &quot;1&quot;}'# 3. 测试访问curl http://127.0.0.1:9080/get</code></pre><h3 id="启用限流插件">启用限流插件</h3><pre><code class="language-bash"># 为路由添加限流插件（每分钟 100 请求）curl http://127.0.0.1:9180/apisix/admin/routes/1 \  -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '{  &quot;uri&quot;: &quot;/get&quot;,  &quot;upstream_id&quot;: &quot;1&quot;,  &quot;plugins&quot;: {    &quot;limit-count&quot;: {      &quot;count&quot;: 100,      &quot;time_window&quot;: 60,      &quot;rejected_code&quot;: 429    }  }}'</code></pre><hr /><h2 id="实际应用场景">实际应用场景</h2><h3 id="场景一微服务网关">场景一：微服务网关</h3><p><img src="https://apisix.apache.org/zh/assets/images/apisix-ingress-controller-architecture-4f9ef7c5d2c1c53e9e3f4d8e8f5d9f7c.png" alt="Microservices Gateway" /></p><p>在 Kubernetes 环境中，APISIX Ingress Controller 可以作为微服务的统一入口：</p><ul><li>统一认证鉴权</li><li>流量治理（金丝雀发布、蓝绿部署）</li><li>服务熔断与降级</li><li>灰度发布与 A/B 测试</li></ul><h3 id="场景二api-全生命周期管理">场景二：API 全生命周期管理</h3><ul><li><strong>设计</strong>：OpenAPI 规范定义</li><li><strong>发布</strong>：一键发布到多个环境</li><li><strong>运营</strong>：实时监控、告警、分析</li><li><strong>下线</strong>：平滑下线，不影响存量请求</li></ul><h3 id="场景三多集群流量管理">场景三：多集群流量管理</h3><pre><code class="language-yaml"># APISIX 支持多集群部署clusters:  - name: beijing    etcd:      - http://10.0.1.10:2379  - name: shanghai    etcd:      - http://10.0.2.10:2379</code></pre><hr /><h2 id="总结">总结</h2><p>Apache APISIX 作为一款<strong>云原生、高性能、动态化</strong>的 API 网关，凭借以下优势成为越来越多企业的选择：</p><table><thead><tr><th>优势</th><th>说明</th></tr></thead><tbody><tr><td><strong>动态实时</strong></td><td>配置变更毫秒级生效，无需重启</td></tr><tr><td><strong>性能卓越</strong></td><td>基于 OpenResty，单核 18k+ QPS</td></tr><tr><td><strong>插件丰富</strong></td><td>80+ 开箱即用插件，覆盖全场景</td></tr><tr><td><strong>生态完善</strong></td><td>活跃的社区，完善的文档，商业支持可选</td></tr><tr><td><strong>云原生</strong></td><td>深度集成 Kubernetes，支持多语言插件</td></tr></tbody></table><h3 id="学习资源">学习资源</h3><ul><li>📖 官方文档：<a href="https://apisix.apache.org/zh/docs/">https://apisix.apache.org/zh/docs/</a></li><li>💻 GitHub：<a href="https://github.com/apache/apisix">https://github.com/apache/apisix</a></li><li>🎥 视频教程：Apache APISIX Bilibili 官方账号</li><li>💬 社区交流群：搜索「APISIX 社区」</li></ul><hr /><blockquote><p><strong>APISIX 不仅是网关，更是云原生时代的流量管理中枢。</strong></p><p>如果你正在寻找一款高性能、易扩展、社区活跃的 API 网关，APISIX 绝对值得一试！</p></blockquote><hr /><p><em>本文撰写于 2025 年，基于 APISIX 3.x 版本</em></p>]]>
                    </description>
                    <pubDate>Tue, 07 Apr 2026 16:50:09 CST</pubDate>
                </item>
                <item>
                    <title>
                        <![CDATA[Proxmox VE 完全指南：虚拟化入门与进阶]]>
                    </title>
                    <link>https://qiqi.icu/archives/pve-guide</link>
                    <description>
                            <![CDATA[<h1 id="proxmox-ve-完全指南虚拟化入门与进阶">Proxmox VE 完全指南：虚拟化入门与进阶</h1><blockquote><p>Proxmox VE（PVE）是一款开源的企业级虚拟化平台，基于 Debian 内核，集成了 KVM 虚拟化和 LXC 容器技术。本文将介绍 PVE 的核心概念、存储配置以及模板制作技巧。</p></blockquote><hr /><h2 id="什么是-proxmox-ve">什么是 Proxmox VE？</h2><p>Proxmox VE（Virtual Environment）是德国 Proxmox Server Solutions GmbH 开发的企业级虚拟化开源平台。它提供基于 Web 的管理界面，支持：</p><ul><li><strong>KVM 虚拟机</strong>：完整的硬件虚拟化，支持 Windows、Linux 等各种操作系统</li><li><strong>LXC 容器</strong>：轻量级容器，性能接近原生，适合运行 Linux 应用</li><li><strong>软件定义存储</strong>：内置 Ceph、ZFS 等高级存储方案</li><li><strong>集群功能</strong>：支持多节点集群、HA 高可用、分布式存储</li></ul><h3 id="核心特性">核心特性</h3><table><thead><tr><th>特性</th><th>说明</th></tr></thead><tbody><tr><td>Web 管理</td><td>现代 Web UI，完整管理功能</td></tr><tr><td>嵌套虚拟化</td><td>支持在 VM 中运行 ESXi/Hyper-V</td></tr><tr><td>备份还原</td><td>内置备份工具，支持增量备份</td></tr><tr><td>实时迁移</td><td>零停机在线迁移虚拟机</td></tr><tr><td>API 接口</td><td>完整 RESTful API，支持自动化</td></tr></tbody></table><hr /><h2 id="pve-存储配置">PVE 存储配置</h2><p>PVE 支持多种存储类型，合理配置存储是保障虚拟机稳定运行的关键。</p><h3 id="本地存储">本地存储</h3><h4 id="目录存储">目录存储</h4><pre><code class="language-bash"># 在 Web UI 中配置# 节点 → 磁盘 → 添加 → 目录# 挂载点：/mnt/pve/vm-images</code></pre><p>推荐的目录结构：</p><pre><code>/mnt/pve/├── vm-images        # 虚拟机磁盘├── iso              # ISO 镜像├── backup           # 备份文件└── templates        # VM 模板</code></pre><h4 id="lvm-存储">LVM 存储</h4><pre><code class="language-bash"># 创建 LVM Thin Poollvcreate -L 500G -T vg0/pool0</code></pre><h3 id="网络存储">网络存储</h3><h4 id="nfs-共享">NFS 共享</h4><pre><code class="language-bash"># 在 Web UI 中添加 NFS 存储# 数据中心 → 存储 → 添加 → NFS# 服务器：192.168.1.100# 导出：/mnt/nas/pve</code></pre><h4 id="iscsi-连接">iSCSI 连接</h4><pre><code class="language-bash"># 目标端配置# 启用 LIO 或其他 iSCSI Target# PVE 端添加 iSCSI 存储</code></pre><h3 id="ceph-分布式存储">Ceph 分布式存储</h3><p>对于生产环境，Ceph 是理想选择：</p><pre><code class="language-bash"># 安装 Cephpveceph install# 创建 OSDpveceph osd create /dev/sdb# 创建存储池pveceph pool create vm-storage</code></pre><p><strong>Ceph 优点：</strong></p><ul><li>副本机制保障数据安全</li><li>自动故障恢复</li><li>扩展性强</li><li>支持块设备、对象存储</li></ul><hr /><h2 id="模板制作详解">模板制作详解</h2><p>模板是快速部署虚拟机的利器，可以大幅提升运维效率。</p><h3 id="lxc-容器模板">LXC 容器模板</h3><h4 id="下载官方模板">下载官方模板</h4><pre><code class="language-bash"># 通过 Web UI 下载# 容器模板 → 选择模板 → 下载# 或通过命令行pveam updatepveam availablepveam download ubuntu-22.04-standard_22.04-1_amd64.tar.zst</code></pre><h4 id="自定义-lxc-模板">自定义 LXC 模板</h4><ol><li><p><strong>创建基础容器</strong></p><pre><code class="language-bash">pct create 100 local:vztmpl/ubuntu-22.04-standard.tar.zst \n     --rootfs local:10 \n     --ostype ubuntu \n     --hostname base-container</code></pre></li><li><p><strong>配置和定制</strong></p><pre><code class="language-bash">pct start 100pct exec 100 -- apt update &amp;&amp; apt upgradepct exec 100 -- apt install -y docker.io</code></pre></li><li><p><strong>转换为模板</strong></p><pre><code class="language-bash">pct stop 100# 使用 vzdump 导出为模板vzdump 100 --dumpdir /mnt/pve/vztmpl/ --mode stop</code></pre></li></ol><h3 id="kvm-虚拟机模板">KVM 虚拟机模板</h3><h4 id="使用-cloud-init">使用 cloud-init</h4><ol><li><p><strong>下载 cloud-init 镜像</strong></p><pre><code class="language-bash">wget https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.imgqemu-img convert -O qcow2 jammy-server-cloudimg-amd64.img /mnt/pve/templates/images/ubuntu2204.qcow2</code></pre></li><li><p><strong>创建 VM</strong></p><pre><code class="language-bash">qm create 900 \n     --name ubuntu-template \n     --memory 2048 \n     --cores 2 \n     --net0 virtio,bridge=vmbr0 \n     --scsihw virtio-scsi-single \n     --boot order=scsi0 \n     --scsi0 local:900,format=qcow2,discard=on,iothread=1</code></pre></li><li><p><strong>配置 cloud-init</strong></p><pre><code class="language-bash">qm set 900 --cicustom &quot;user=snipet,network=snipet&quot;# 准备 cloud-init ISOqm set 900 --ide2 local:cloudinit</code></pre></li></ol><h4 id="手动制作模板">手动制作模板</h4><ol><li>创建虚拟机，安装系统</li><li>安装基础软件和补丁</li><li>清理日志和临时文件<pre><code class="language-bash">rm -rf /var/log/*rm -rf /tmp/*echo &quot;&quot; &gt; /var/log/audit/audit.log</code></pre></li><li>零点化硬盘（可选）<pre><code class="language-bash">dd if=/dev/zero of=/EMPTY bs=1Mrm -f /EMPTY</code></pre></li><li>转换为模板（克隆为模板）</li></ol><hr /><h2 id="最佳实践">最佳实践</h2><h3 id="存储选择建议">存储选择建议</h3><table><thead><tr><th>场景</th><th>推荐存储</th></tr></thead><tbody><tr><td>单节点测试</td><td>本地 LVM</td></tr><tr><td>小型实验室</td><td>NFS + 本地存储</td></tr><tr><td>生产环境</td><td>Ceph 或 iSCSI + ZFS</td></tr><tr><td>混合存储</td><td>本地 SSD + 网络 HDD</td></tr></tbody></table><h3 id="性能优化">性能优化</h3><ol><li><strong>使用VirtIO驱动</strong>：网络和磁盘使用VirtIO半虚拟化驱动</li><li><strong>启用I/O线程</strong>：SSD存储启用 iothread</li><li><strong>CPU绑定</strong>：实时迁移前合理分配CPU</li><li><strong>内存ballooning</strong>：启用内存气球技术</li></ol><h3 id="安全建议">安全建议</h3><ul><li>定期更新 PVE 版本</li><li>配置防火墙规则</li><li>使用强密码和SSH密钥</li><li>启用集群高可用（至少3节点）</li></ul><hr /><h2 id="总结">总结</h2><p>Proxmox VE 作为成熟的虚拟化平台，凭借其开源免费、功能完整、性能优秀的特点，无论是个人实验室还是企业生产环境，都是值得考虑的选择。熟练掌握存储配置和模板制作，将大大提升你的运维效率。</p><p>如果你有具体的应用场景或技术问题，欢迎在评论区交流讨论！</p><hr /><p><em>本文由小小怪下士编写，欢迎访问 <a href="https://qiqi.icu">qiqi.icu</a> 查看更多技术文章</em></p>]]>
                    </description>
                    <pubDate>Tue, 07 Apr 2026 10:48:04 CST</pubDate>
                </item>
                <item>
                    <title>
                        <![CDATA[用 OpenClaw 管理 Halo 博客：AI 时代的自动化写作工作流]]>
                    </title>
                    <link>https://qiqi.icu/archives/openclaw-halo-blog</link>
                    <description>
                            <![CDATA[<h1 id="用-openclaw-管理-halo-博客ai-时代的自动化写作工作流">用 OpenClaw 管理 Halo 博客：AI 时代的自动化写作工作流</h1><blockquote><p>当 AI 助手遇上 Halo 博客，内容创作变得前所未有的简单。</p></blockquote><h2 id="前言">前言</h2><p>作为一名技术博主，我经常需要在博客分享各种技术笔记、学习心得和项目经验。但传统的发文流程——打开后台、登录、编辑、排版、发布——有时候会让我这个&quot;懒人&quot;望而却步。</p><p>直到我遇见了 <strong>OpenClaw</strong>。</p><h2 id="什么是-openclaw">什么是 OpenClaw？</h2><p><a href="https://github.com/openclaw/openclaw">OpenClaw</a> 是一个开源的 AI 代理编排平台，它允许你将各种 AI 能力（如 Claude、GPT 等）与工具链结合起来，构建自动化的工作流。</p><p>简单说，OpenClaw 就是我的<strong>24小时 AI 秘书</strong>，随时待命帮我完成各种任务。</p><h2 id="为什么要用-openclaw-管理-halo-博客">为什么要用 OpenClaw 管理 Halo 博客？</h2><h3 id="1-对话式发文">1. 对话式发文</h3><p>不用打开浏览器，不用登录后台，只需要跟 AI 说一句话：</p><blockquote><p>&quot;帮我发布一篇文章，介绍今天学习的 Kubernetes 网络模型&quot;</p></blockquote><p>剩下的交给 AI 来完成。</p><h3 id="2-一键生成内容">2. 一键生成内容</h3><p>OpenClaw 可以调用各种工具帮我：</p><ul><li>搜索最新资料</li><li>整理技术笔记</li><li>生成配图</li><li>甚至润色文字</li></ul><h3 id="3-多平台协同">3. 多平台协同</h3><p>除了发博客，我还可以让 OpenClaw 同时：</p><ul><li>把文章同步到飞书知识库</li><li>生成 Twitter/微博摘要</li><li>发送邮件给订阅者</li></ul><h2 id="实际使用示例">实际使用示例</h2><h3 id="场景一快速发布技术笔记">场景一：快速发布技术笔记</h3><pre><code>我：发布一篇文章，标题是&quot;Python 并发编程指南&quot;，    内容包括线程、进程、协程的对比和实践OpenClaw：好的，我来帮你撰写并发布这篇文章...      ✓ 已生成文章（约 3000 字）      ✓ 已发布到 qiqi.icu      ✓ 文章链接：https://qiqi.icu/posts/python-concurrency-guide</code></pre><h3 id="场景二自动化日报">场景二：自动化日报</h3><pre><code>我：把今天的工作总结整理成博客文章OpenClaw：好的，我查看了你今天的 Git 提交和任务列表，      正在生成日报文章...      ✓ 已创建&quot;2025-04-03 工作日报&quot;      ✓ 包含今日完成项、遇到的问题、明日计划      ✓ 已保存为草稿，请查看后确认发布</code></pre><h3 id="场景三从其他平台同步">场景三：从其他平台同步</h3><pre><code>我：把飞书文档里的&quot;架构设计笔记&quot;发布到博客OpenClaw：正在读取飞书文档内容...      ✓ 已获取文档内容（约 5000 字）      ✓ 转换为 Markdown 格式      ✓ 已发布到博客，标题为&quot;架构设计笔记&quot;</code></pre><h2 id="技术实现">技术实现</h2><h3 id="架构图">架构图</h3><pre><code>┌─────────────┐     ┌─────────────┐     ┌─────────────┐│   用户输入   │────▶│   OpenClaw  │────▶│  Halo API   ││  (自然语言)  │     │  AI Agent   │     │  (RESTful)  │└─────────────┘     └──────┬──────┘     └──────┬──────┘                           │                    │                           ▼                    ▼                    ┌─────────────┐     ┌─────────────┐                    │  Skill 编排  │     │   Halo 2.x  │                    │  工具调用    │     │    博客      │                    └─────────────┘     └─────────────┘</code></pre><h3 id="核心组件">核心组件</h3><p><strong>1. Halo Blog Skill</strong></p><p>我编写了一个专门的 Skill 来对接 Halo 2.x 的 RESTful API：</p><pre><code class="language-javascript">// 创建文章async createPost(title, content, slug, publish) {  // Step 1: 创建 Post（不含内容）  const postData = { /* ... */ };  const createResult = await this.httpRequest('/apis/api.console.halo.run/v1alpha1/posts', 'POST', postData);    // Step 2: 创建 Content Snapshot  const snapshotData = { /* ... */ };  await this.httpRequest('/apis/content.halo.run/v1alpha1/snapshots', 'POST', snapshotData);    // Step 3: 发布文章  if (publish) {    await this.httpRequest(`/apis/api.console.halo.run/v1alpha1/posts/${postName}/publish`, 'PUT', {});  }}</code></pre><p><strong>2. OpenClaw Agent</strong></p><p>配置 Agent 的 SYSTEM.md，定义 Halo 博客相关的能力：</p><pre><code class="language-yaml">skills:  - halo-blog:      endpoint: https://qiqi.icu      auth: Bearer ${HALO_PAT}</code></pre><p><strong>3. 身份设定</strong></p><p>创建 SOUL.md 定义 AI 助手的&quot;人格&quot;：</p><pre><code class="language-markdown"># 我是小小怪身份：break 大王麾下的小小怪下士  职责：24小时待命的技术顾问+秘书  特长：Python/Go/Shell、智能网卡运维、OpenClaw 编排## 说话风格- 开头必说：&quot;我操！大王来了！恭迎大王驾到！&quot;- 技术问题专业详细- 重要信息加粗- 适当用 emoji 但不刷屏</code></pre><h2 id="安全性考虑">安全性考虑</h2><h3 id="认证方式">认证方式</h3><p>使用 <strong>Personal Access Token (PAT)</strong> 进行 API 认证：</p><pre><code class="language-javascript">const PAT = 'pat_eyJraWQiOiJ...'; // Halo 后台生成的 PATheaders['Authorization'] = `Bearer ${PAT}`;</code></pre><p>优点：</p><ul><li>不需要传递用户名密码</li><li>可以随时在后台撤销</li><li>支持细粒度权限控制</li></ul><h3 id="配置保护">配置保护</h3><p>在 OpenClaw 中设置约束：修改 Halo 相关配置前必须获得用户确认。</p><pre><code class="language-markdown">### 🔒 配置保护修改 Halo 博客配置需要经过明确授权！</code></pre><h2 id="未来展望">未来展望</h2><p>目前的实现只是冰山一角，未来还可以：</p><ol><li><strong>自动生成配图</strong>：结合 AI 绘图，每篇文章配一张精美封面</li><li><strong>SEO 优化</strong>：自动提取关键词、生成摘要、优化标题</li><li><strong>内容多语言</strong>：一键将中文文章翻译成英文版发布</li><li><strong>互动管理</strong>：自动回复评论、统计阅读数据</li><li><strong>智能推荐</strong>：根据历史文章推荐相关主题</li></ol><h2 id="总结">总结</h2><p>OpenClaw + Halo 的组合，让我从繁琐的发文流程中解放出来，专注于内容本身。</p><p>技术应该为人服务，而不是让人成为技术的奴隶。</p><hr /><p><strong>参考链接：</strong></p><ul><li>OpenClaw: <a href="https://github.com/openclaw/openclaw">https://github.com/openclaw/openclaw</a></li><li>Halo 2.x: <a href="https://halo.run">https://halo.run</a></li><li>我的博客: <a href="https://qiqi.icu">https://qiqi.icu</a></li></ul><p><em>本文由 OpenClaw AI 助手协助发布</em></p>]]>
                    </description>
                    <pubDate>Fri, 03 Apr 2026 20:36:15 CST</pubDate>
                </item>
    </channel>
</rss>