使用 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 ------ 固定配色方案,支持明暗模式切换:

  • 白天模式:浅灰背景 + 白色正文框
  • 暗色模式:深色背景 + 深色正文框
  • 机器人图标 + 状态指示器(绿色呼吸灯)
  • 移动端自适应
相关推荐
sunxunyong8 小时前
st功能记录
人工智能
weelinking8 小时前
【claude】14_Claude作为技术文档助手
前端·人工智能·react.js·数据挖掘·前端框架
领麦微红外8 小时前
从被动预警到精准防护:红外测温助力激光安全切割新标准
人工智能·安全
穗余8 小时前
2026 AI x Web3 School共学营笔记-Day1
人工智能·笔记·web3
zhumin7268 小时前
人工智能评标应用研究——构建智能化、标准化、可信化的新型评标体系
人工智能
字节高级特工8 小时前
AI接入指南:从API到本地部署全解析
人工智能
Black蜡笔小新8 小时前
企业AI算力工作站/深度学习推理工作站DLTM零代码私有化重塑智慧农业AI模型训练体系
人工智能·深度学习
轻刀快马8 小时前
个人体验:从零构建高可用 Multi-Agent 架构与实战避坑指南
人工智能·架构·agent
SelectDB技术团队8 小时前
PB 级自动驾驶数据秒级检索:Apache Doris 统一多模态数据平台实践
数据库·人工智能·自动驾驶·apache doris·selectdb