使用 Ollama 为 Hexo 博客部署 AI 文章摘要

发布于:

https://blog.mingliangstar.com/2026/05/16/%E4%BD%BF%E7%94%A8-Ollama-%E4%B8%BA-Hexo-%E5%8D%9A%E5%AE%A2%E9%83%A8%E7%BD%B2-AI-%E6%96%87%E7%AB%A0%E6%91%98%E8%A6%81/https://blog.mingliangstar.com/2026/05/16/%E4%BD%BF%E7%94%A8-Ollama-%E4%B8%BA-Hexo-%E5%8D%9A%E5%AE%A2%E9%83%A8%E7%BD%B2-AI-%E6%96%87%E7%AB%A0%E6%91%98%E8%A6%81/

使用 Ollama 为 Hexo 博客部署 AI 文章摘要

架构概述

复制代码
┌─────────────────┐      ┌─────────────────┐      ┌─────────────────┐
│   用户浏览器     │ ──→  │  Hexo 服务器    │ ──→  │  Ollama 服务器  │
│                 │      │  (Nginx 代理)   │      │  (192.168.0.2)│
│  blog.mingliang │      │  192.168.1.2 │      │   :11434        │
│     star.com    │      │                 │      │                 │
└─────────────────┘      └─────────────────┘      └─────────────────┘
        ↑                                              ↑
        └──────────── 仅允许 192.168.1.2 访问 ──────┘

Ollama 服务端部署

1. 拉起ollama的容器并设置环境变量防止CORS跨域访问

复制代码
docker run -d \
  -v ollama:/root/.ollama \
  -p 11434:11434 \
  -e OLLAMA_ORIGINS="https://blog.mingliangstar.com,https://mingliangstar.com,http://localhost,https://localhost" \
  -e OLLAMA_HOST="0.0.0.0:11434" \
  --name ollama \
  ollama/ollama

2. 为ollama下载qwen2.5:0.5b模型

复制代码
docker exec ollama ollama pull qwen2.5:0.5b

3. 安全加固:配置防火墙

在阿里云安全组中配置:

  • 入方向 11434 端口:授权对象 192.168.1.2
  • 删除所有 0.0.0.0/0 访问 11434 的规则

Hexo 服务器配置反向代理

在 Hexo 服务器(192.168.1.2)的 Nginx 中配置:

复制代码
代理目录:/
目标:url地址 http://192.168.0.2:11434
发送域名:$http_host

为何需要反向代理?

  • 浏览器直接请求 Ollama 存在 CORS 限制
  • 通过同域名代理,前端无跨域问题
  • 隐藏真实 Ollama IP,增强安全性

Hexo 主题集成

1. 添加挂载点

编辑 /www/wwwroot/myblog/themes/anzhiyu/layout/post.pug,插入:

复制代码
...

//- AI 摘要区域(由 ai-summary.js 动态渲染)
#ai-summary.anzhiyu-ai-summary

!=page.content

...

2. 引入资源文件

在主题布局中引入 CSS 和 JS:

复制代码
inject:
  head:
    # 自定义css
    - <link rel="stylesheet" href="/cdn/css/ai-summary.css">
 
  bottom:
    # 自定义js
    - <script defer src="/cdn/js/ai-summary.js"></script>

3. 前端核心代码

ai-summary.js ------ 纯前端 Ollama 调用,支持打字机效果和本地缓存:

  • 自动提取文章正文,过滤代码块、图片等干扰内容
  • 调用 Ollama /api/generate 接口生成摘要
  • localStorage 缓存:同篇文章 7 天内不再重复请求
  • 打字机效果:逐字输出,增强交互体验
  • 适配 PJAX/Turbolinks 无刷新页面切换

ai-summary.css ------ 固定配色方案,支持明暗模式切换:

  • 白天模式:浅灰背景 + 白色正文框
  • 暗色模式:深色背景 + 深色正文框
  • 机器人图标 + 状态指示器(绿色呼吸灯)
  • 移动端自适应
相关推荐
gis分享者27 分钟前
AI数字营销实测体验,GEO效果查询功能体验
人工智能·csdn·geo·数字营销·实测体验·效果查询
莱歌数字27 分钟前
轻出20%性能:三维拓扑优化如何重塑无人机电子设备散热格局
人工智能·科技·制造·cae·散热
猿小猴子1 小时前
主流 AI IDE 之一的「DeepSeek-Reasonix 」介绍
人工智能·ai·deepseek·reasonix
装不满的克莱因瓶1 小时前
链式法则如何传递参数误差 —— 深入理解神经网络中的梯度传播
人工智能·python·深度学习·神经网络·数学·机器学习·ai
Anastasiozzzz1 小时前
从有限状态机到智能体图:传统 FSM 与 Agent Graph的演进
java·人工智能·python·ai
程序员cxuan7 小时前
为每个任务配一套 harness:Claude Code 里的动态工作流
人工智能
程序员cxuan7 小时前
Claude Fable 5 来了
人工智能·后端·程序员
云边云科技_云网融合7 小时前
云边云科技亮相 2026 WOD 制造业数智化博览会 云网融合赋能制造焕新
人工智能·科技·安全·制造
Σίσυφος19007 小时前
激光三角 光平面标定-多高度误差分析
人工智能·计算机视觉·平面
JS菌7 小时前
手写一个 AI Agent 全栈项目:从沙箱执行到子智能体的完整实现
前端·人工智能·后端