使用Docker Compose一键部署隐私优先的SearXNG搜索引擎
1. 为什么你需要一个隐私优先的搜索引擎?
每天我们都在使用搜索引擎查找各种信息,但你可能没意识到,大多数主流搜索引擎都在悄悄记录你的搜索历史、位置信息甚至设备指纹。这些数据会被用来构建用户画像,最终影响你看到的内容和广告。而SearXNG的出现,给了我们一个完全不同的选择。
SearXNG是一个开源的元搜索引擎,它最大的特点就是不记录、不追踪、不分析用户行为。当你使用SearXNG搜索时,你的查询请求会被随机转发到多个搜索引擎(如Google、Bing等),但SearXNG本身不会保存任何日志。这就好比让一个不记事的中间人帮你去各家书店问问题,最后只把答案带回来给你。
我去年开始用SearXNG替代常规搜索引擎,最直观的感受就是搜索结果不再被"个性化过滤"。以前用商业搜索引擎时,同样的关键词我和同事搜出来的结果可能完全不同,而现在我们看到的都是未经算法干预的原始结果。对于需要客观信息的场景(比如技术调研),这点特别重要。
2. 准备工作:Docker环境配置
2.1 安装Docker和Docker Compose
在开始之前,你需要确保系统已经安装了Docker引擎和Docker Compose。以Ubuntu系统为例,可以执行以下命令:
# 安装必要工具
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
# 添加Docker官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 添加Docker仓库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 安装Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
# 验证安装
sudo docker run hello-world
# 安装Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
注意:如果你使用的是其他Linux发行版,可以参考Docker官方文档调整安装命令。Windows和macOS用户可以直接下载Docker Desktop安装包。
2.2 创建专用部署目录
为了避免文件散落在各处,我习惯为每个Docker项目创建独立的目录。执行以下命令:
mkdir -p ~/searxng/{config,data}
cd ~/searxng
这个目录结构会用来存放SearXNG的配置文件和数据缓存。config目录将映射到容器内的/etc/searxng,data目录对应/var/cache/searxng。
3. 编写Docker Compose配置文件
3.1 基础配置模板
在项目目录下创建docker-compose.yml文件,内容如下:
version: '3.8'
services:
searxng:
image: searxng/searxng:latest
container_name: searxng
ports:
- "8888:8080"
volumes:
- "./config:/etc/searxng"
- "./data:/var/cache/searxng"
environment:
- BASE_URL=http://localhost:8888/
- INSTANCE_NAME=My Private Search
restart: unless-stopped
networks:
- searxng-net
networks:
searxng-net:
driver: bridge
这个配置做了几件重要的事情:
- 使用官方最新的SearXNG镜像
- 将容器内部的8080端口映射到主机的8888端口
- 挂载配置和数据目录实现持久化
- 设置基础URL和实例名称
- 配置了独立的Docker网络
3.2 高级配置选项
如果你想进一步定制SearXNG,可以添加更多环境变量:
environment:
- BASE_URL=http://your-domain.com/
- INSTANCE_NAME=Custom Search
- SEARXNG_SECRET_KEY=your_random_string_here
- SEARXNG_BIND_ADDRESS=0.0.0.0
- SEARXNG_DISABLE_HTTPS=true
提示:
SEARXNG_SECRET_KEY用于加密会话,建议使用openssl rand -hex 32生成随机字符串。如果打算公开访问,建议配置HTTPS反向代理。
4. 启动与验证服务
4.1 启动容器
在包含docker-compose.yml的目录下执行:
docker-compose up -d
这个命令会:
- 拉取最新的SearXNG镜像(如果本地没有)
- 创建配置的网络
- 启动容器并在后台运行
第一次启动可能需要1-2分钟,因为SearXNG需要初始化配置和缓存。
4.2 检查运行状态
使用以下命令确认容器正常运行:
docker-compose ps
你应该看到类似这样的输出:
NAME COMMAND SERVICE STATUS PORTS
searxng "/sbin/tini -- /usr/…" searxng running 0.0.0.0:8888->8080/tcp
4.3 访问Web界面
打开浏览器访问http://localhost:8888(如果你修改了端口号,请使用对应的端口)。你应该能看到SearXNG的搜索界面,简洁的UI背后是强大的隐私保护功能。
试着搜索一些内容,你会发现结果聚合了多个搜索引擎的数据,但没有任何个性化推荐或广告。这就是SearXNG的魅力所在——它只关心给你最相关的结果,而不是你的个人数据。
5. 日常维护与进阶配置
5.1 更新SearXNG版本
保持最新版本可以获得安全更新和新功能:
docker-compose pull
docker-compose up -d
5.2 修改配置文件
SearXNG的主要配置文件位于config/settings.yml。修改后需要重启服务:
docker-compose restart
5.3 启用HTTPS
虽然SearXNG本身不处理HTTPS,但你可以通过反向代理实现。以Nginx为例:
server {
listen 443 ssl;
server_name search.your-domain.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://localhost:8888;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
记得在docker-compose.yml中更新BASE_URL为HTTPS地址。
5.4 性能调优
如果发现搜索速度较慢,可以调整以下参数:
environment:
- SEARXNG_WORKERS=4
- SEARXNG_MAX_WORKER_TIME=30
这些设置需要根据服务器CPU核心数和性能进行调整。我的经验是,4核CPU设置4-6个worker比较合适。
更多推荐
所有评论(0)