Ubuntu 24.04 使用 Docker 安装 SearXNG 教程

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:8080http://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

安全建议

  1. 使用强密钥:在 secret_key 中设置一个随机的强密钥
  2. 启用 HTTPS:始终使用 HTTPS 访问
  3. 限制访问:可以在 Nginx 中添加 IP 白名单
  4. 定期更新:保持 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。现在你可以:

  1. 使用 http://your-server-ip:8080http://your-domain.com 访问
  2. 自定义搜索引擎和主题
  3. 配置缓存和优化性能
  4. 通过 Nginx 和 HTTPS 保护你的服务

享受隐私保护的搜索体验吧!

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容