侧边栏壁纸
博主头像
いちごみるく

行动起来,活在当下

  • 累计撰写 70 篇文章
  • 累计创建 48 个标签
  • 累计收到 55 条评论

目 录CONTENT

文章目录

Docker搭建Searxng——自建隐私搜索引擎

本文使用 SearXNG 官方容器模板、Valkey 和反向代理部署个人搜索服务。示例依据上游文档,搜索引擎的实际可用性仍取决于网络、配置与站点限制。

SearXNG 是元搜索服务,把多个搜索引擎的结果汇总给用户。自建可以控制请求与日志策略,但搜索请求仍会由服务器发往所选引擎,上游能看到服务器出口;不能把“自建”直接等同于绝对匿名或不记录任何信息。官方容器安装文档

一、取得当前容器模板

现在的官方 Compose 文件在 SearXNG 主仓库的 container/ 目录。以下命令仅取得配置文件,执行前查看文件内容:

mkdir -p searxng/core-config
cd searxng
curl -fL https://raw.githubusercontent.com/searxng/searxng/master/container/docker-compose.yml -o compose.yaml
curl -fL https://raw.githubusercontent.com/searxng/searxng/master/container/.env.example -o .env

当前 Compose包括核心服务和 Valkey,Valkey 不映射宿主机端口;配置目录持久化到 core-config,缓存使用命名卷。更新容器模板前应阅读差异,并合并自己的配置,避免直接覆盖。

按 .env 模板修改监听设置:

SEARXNG_HOST=127.0.0.1
SEARXNG_PORT=8080

SEARXNG_HOST 在这里用于宿主机端口映射。使用官方当前文件时不要再把老 Compose 中的变量名称或旧 Redis 容器照搬进来。

二、设置密钥和限流

生成随机密钥:

openssl rand -hex 32

将输出填入 core-config/settings.yml,不要使用本文占位值直接启动公开实例:

use_default_settings: true
server:
  secret_key: "替换为刚生成的随机值"
  limiter: true
  base_url: https://search.example.com/
valkey:
  url: valkey://valkey:6379/0

Valkey 主机名必须和所取得 Compose 的服务名一致。官方 Valkey 配置说明了连接 URL。先核对该版本支持的配置项,再校验启动;秘密文件不提交公开仓库。use_default_settings 可以保留项目默认引擎配置,再按需要覆盖。

限流使用 Valkey,并依赖可信的客户端地址判断。实例出现 429 时,先看是否所有访问都被识别成同一个反向代理地址、代理头是否仅由可信代理提供,以及 Valkey 是否可连通。对公网实例直接设置 limiter: false 会改变滥用防护,不是通用排障结论。限流说明

docker compose config --quiet
docker compose up -d
docker compose ps
docker compose logs --tail 100

三、反向代理和验证

在已配置 HTTPS 的同机 Nginx 中,将站点转发到 http://127.0.0.1:8080,传递正确的 Host、协议与客户端 IP;若前面还有 CDN 或另一层代理,要按实际信任链设置,不能无条件相信浏览器自带的 X-Forwarded-For。

访问页面后,测试中文搜索、跳转、至少几个常用引擎和速率限制。某个引擎超时、验证码或 403 并不代表整个 SearXNG 失效;也不能把它当空结果写成“没有相关内容”。在日志中区分引擎响应、代理问题与本地配置错误。

升级前备份配置,记录核心与 Valkey 镜像的版本或 digest,查看引擎配置和数据库兼容变化。不要把删除缓存卷、关闭验证或关闭限流作为第一步。

1

评论区