Ubuntu 24.04 使用 Docker 安装 SearXNG 教程
什么是 SearXNG?
SearXNG 是一个隐私保护的元搜索引擎,它聚合了多个搜索引擎的结果,并提供匿名搜索功能。它不收集用户数据,是一个开源项目。
前置要求
- Ubuntu 24.04 服务器
- 已安装 Docker 和 Docker Compose
- 域名(可选,用于访问)
安装步骤
1. 安装 Docker 和 Docker Compose
# 更新软件包索引
sudo apt update
# 安装依赖包
sudo apt install -y ca-certificates curl gnupg lsb-release
# 添加 Docker 官方 GPG 密钥
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# 设置 Docker 仓库
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 安装 Docker Engine
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 将当前用户添加到 docker 组
sudo usermod -aG docker $USER
# 重新登录以使组更改生效
2. 创建 SearXNG 目录
# 创建工作目录
mkdir -p ~/searxng
cd ~/searxng
3. 创建 Docker Compose 配置文件
创建 docker-compose.yml 文件:
version: "3.8"
services:
searxng:
image: searxng/searxng:latest
container_name: searxng
restart: always
ports:
- "8080:8080"
environment:
- SEARXNG_BASE_URL=http://your-domain.com:8080/
- SEARXNG_SECRET=your-random-secret-string
volumes:
- ./searxng:/etc/searxng:rw
networks:
- searxng
networks:
searxng:
driver: bridge
4. 生成配置文件
# 复制默认配置
docker run --rm -v "$PWD/searxng:/etc/searxng:rw" searxng/searxng generate_config
# 编辑配置文件
nano searxng/searxng.yml
重要配置项
在 searxng.yml 中,修改以下配置:
use_default_settings: true
server:
bind_address: 0.0.0.0
port: 8080
secret_key: your-random-secret-string-here
image_proxy: true
limiter: false # 如果不想限制请求频率,设置为 false
method: GET
theme: simple
ui:
static_use_hash: true
default_locale: zh_CN
general:
debug: false
instance:
instance_name: SearXNG 搜索
contact_url: mailto:your-email@example.com
privacypolicy_url: https://your-domain.com/privacypolicy
infopage_url: https://your-domain.com/about
donation_url: https://your-domain.com/donate
search:
safe_search: 0
autocomplete: google
# 添加自定义搜索引擎(可选)
engines:
- name: bing
engine: bing
shortcut: bi
- name: duckduckgo
engine: duckduckgo
shortcut: ddg
- name: google
engine: google
shortcut: gg
5. 启动 SearXNG
# 启动服务
docker-compose up -d
# 查看日志
docker-compose logs -f
6. 验证安装
访问 http://your-server-ip:8080 或 http://your-domain.com:8080
你应该能看到 SearXNG 的搜索界面。
配置域名和反向代理(可选但推荐)
使用 Nginx
创建 Nginx 配置:
sudo nano /etc/nginx/sites-available/searxng
添加以下内容:
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# WebSocket 支持
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# 缓存设置
proxy_cache_bypass $http_upgrade;
}
}
启用配置:
sudo ln -s /etc/nginx/sites-available/searxng /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
配置 HTTPS(使用 Certbot)
# 安装 Certbot
sudo apt install -y certbot python3-certbot-nginx
# 获取证书
sudo certbot --nginx -d your-domain.com
# 自动续期
sudo certbot renew --dry-run
常用命令
# 启动服务
docker-compose up -d
# 停止服务
docker-compose down
# 重启服务
docker-compose restart
# 查看日志
docker-compose logs -f
# 更新到最新版本
docker-compose pull
docker-compose up -d
配置搜索引擎
默认配置已经包含多个搜索引擎。你可以在 searxng.yml 中添加更多:
engines:
- name: baidu
engine: baidu
shortcut: bd
language: zh-CN
性能优化
1. 启用缓存
server:
limiter: false # 禁用请求限制
outgoing:
request_timeout: 10.0
max_request_size: 10485760 # 10MB
cache:
general:
use_redis: false
use_memcached: false
use_memory: true
2. 配置 Redis 缓存(推荐)
cache:
general:
use_redis: true
redis_url: redis://redis:6379/0
image:
use_redis: true
redis_url: redis://redis:6379/1
添加 Redis 服务到 docker-compose.yml:
services:
redis:
image: redis:alpine
restart: always
command: redis-server --appendonly yes
volumes:
- ./redis:/data
searxng:
# ... 其他配置
depends_on:
- redis
安全建议
- 使用强密钥:在
secret_key中设置一个随机的强密钥 - 启用 HTTPS:始终使用 HTTPS 访问
- 限制访问:可以在 Nginx 中添加 IP 白名单
- 定期更新:保持 Docker 镜像最新
# 更新镜像
docker-compose pull
docker-compose up -d
故障排查
无法访问服务
# 检查容器状态
docker ps -a
# 查看日志
docker-compose logs searxng
端口被占用
# 检查端口占用
sudo netstat -tulpn | grep 8080
# 修改 docker-compose.yml 中的端口映射
配置不生效
# 重启容器
docker-compose restart
# 重新生成配置
docker run --rm -v "$PWD/searxng:/etc/searxng:rw" searxng/searxng generate_config
参考资源
总结
通过以上步骤,你已经在 Ubuntu 24.04 上成功安装并配置了 SearXNG。现在你可以:
- 使用
http://your-server-ip:8080或http://your-domain.com访问 - 自定义搜索引擎和主题
- 配置缓存和优化性能
- 通过 Nginx 和 HTTPS 保护你的服务
享受隐私保护的搜索体验吧!
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END















暂无评论内容