在云服务器上搭建 SearXNG:打造属于自己的无广告搜索引擎

为什么选择自建 SearXNG?

在当今数字时代,信息获取的效率和隐私保护变得尤为重要。然而,主流搜索引擎常常充斥着广告,且对用户隐私的保护不足。为了避免这些问题,你可以在云服务器上搭建自己的 SearXNG 搜索引擎,享受纯净、安全的搜索体验。

搭建 SearXNG 的好处

  • 隐私保护:自建的 SearXNG 不会收集你的搜索数据,确保你的搜索行为不被追踪。
  • 无广告干扰:摆脱商业广告的干扰,获取更纯净的搜索结果。
  • 自定义搜索源:根据个人需求,定制搜索来源,提升搜索效率。

搭建环境准备

  1. 云服务器:建议选择海外服务器,如香港或美国的服务器,以确保搜索引擎的正常使用。
  2. Docker:确保服务器上已安装 Docker
  3. 域名+nginx(可选):如果希望通过自定义域名访问搜索引擎,可准备一个域名,且需要安装nginx。

开始搭建

  1. 安装docker(如果已经安装,可以跳过此步骤)

    curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
  2. 启动 SearXNG 容器

    docker run -d --name searxng \
    -p 8008:8080 \
    searxng/searxng

    细节提示

    • 8008为本机对外暴露的端口,可以自定义,只要确保端口能够正常访问。
    • 如果端口被网络安全组拦截,也没关系,可以使用nginx转发也能访问。
  3. 验证服务运行
    在浏览器中访问 http://服务器IP:8008,检查 SearXNG 是否正常运行。
    如果无法访问,可以在服务器运行curl http://127.0.0.1:8008,如果有正常返回,则可以确定端口被网络安全组拦截,如果不想改规则,可以继续安装nginx,通过nginx转发到该端口。

配置 Nginx

  1. 安装 Nginx
    在服务器上执行以下命令安装 Nginx:

    sudo apt update && sudo apt install -y nginx
  2. 配置 Nginx 反向代理
    创建 Nginx 配置文件 /etc/nginx/sites-available/searxng,直接执行下方命令:

    cat << 'EOF' > /etc/nginx/sites-available/searxng
    server {
    listen 80;
    server_name your-domain.com;
    
    location / {
        proxy_pass http://127.0.0.1:8008;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    }
    EOF

    细节提示

    • your-domain.com 替换为你的实际域名。
    • EOF的单引号不能省略,否则Shell 会对其中的变量进行扩展。如果这些变量未在当前环境中定义,Shell 会将其替换为空字符串,导致配置文件中缺失相应的变量
  3. 启用 Nginx 配置并重启 Nginx
    执行以下命令启用 Nginx 配置:

    sudo ln -s /etc/nginx/sites-available/searxng /etc/nginx/sites-enabled/
    sudo systemctl restart nginx
  4. 开启 HTTPS(可选)
    如果希望使用 HTTPS,可以参考我之前的申请域名证书的教程。
    如何快速申请泛域名证书?

    细节提示

    • 如果开启了https,那么nginx配置中的listen 80需要调整为listen 443,并且重新执下脚本,再重启nginx

配置 SearXNG

配置SearXNG有两种方式,一种简单快速,一种灵活复杂。

  • 简单快速
    访问自己的搜索引擎首页,点击左上角【首选项】,可以自己开启关闭一些搜索引起以及部分定制化
  • 灵活复杂
    SearXNG是有自己的配置文件的,只是咱们使用docker启动的,所以配置文件需要进入docker容器内配置。

    1. 先进入docker容器内
      docker exec -it searxng /bin/sh
    2. 再编辑配置文件
      vim /etc/searxng/settings.yml

      具体各配置项控制的内容可以参考:https://raw.githubusercontent.com/searxng/searxng/master/searx/settings.yml

    3. 修改配置后,重新启动 SearXNG 容器以使更改生效:
      docker restart searxng

结语

通过以上步骤,你成功在云服务器上搭建属于自己的 SearXNG 搜索引擎,并使用 Nginx 进行反向代理。可以选择配置 HTTPS 以增强安全性,或者自定义 SearXNG 的搜索引擎设置,以获得更好的搜索体验。