在云服务器上搭建 SearXNG:打造属于自己的无广告搜索引擎
为什么选择自建 SearXNG?
在当今数字时代,信息获取的效率和隐私保护变得尤为重要。然而,主流搜索引擎常常充斥着广告,且对用户隐私的保护不足。为了避免这些问题,你可以在云服务器上搭建自己的 SearXNG 搜索引擎,享受纯净、安全的搜索体验。
搭建 SearXNG 的好处
- 隐私保护:自建的 SearXNG 不会收集你的搜索数据,确保你的搜索行为不被追踪。
- 无广告干扰:摆脱商业广告的干扰,获取更纯净的搜索结果。
- 自定义搜索源:根据个人需求,定制搜索来源,提升搜索效率。
搭建环境准备
- 云服务器:建议选择海外服务器,如香港或美国的服务器,以确保搜索引擎的正常使用。
- Docker:确保服务器上已安装 Docker
- 域名+nginx(可选):如果希望通过自定义域名访问搜索引擎,可准备一个域名,且需要安装nginx。
开始搭建
-
安装docker(如果已经安装,可以跳过此步骤)
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
-
启动 SearXNG 容器
docker run -d --name searxng \ -p 8008:8080 \ searxng/searxng
细节提示:
- 8008为本机对外暴露的端口,可以自定义,只要确保端口能够正常访问。
- 如果端口被网络安全组拦截,也没关系,可以使用nginx转发也能访问。
-
验证服务运行
在浏览器中访问http://服务器IP:8008
,检查 SearXNG 是否正常运行。
如果无法访问,可以在服务器运行curl http://127.0.0.1:8008
,如果有正常返回,则可以确定端口被网络安全组拦截,如果不想改规则,可以继续安装nginx,通过nginx转发到该端口。
配置 Nginx
-
安装 Nginx
在服务器上执行以下命令安装 Nginx:sudo apt update && sudo apt install -y nginx
-
配置 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 会将其替换为空字符串,导致配置文件中缺失相应的变量
- 将
-
启用 Nginx 配置并重启 Nginx
执行以下命令启用 Nginx 配置:sudo ln -s /etc/nginx/sites-available/searxng /etc/nginx/sites-enabled/ sudo systemctl restart nginx
-
开启 HTTPS(可选)
如果希望使用 HTTPS,可以参考我之前的申请域名证书的教程。
如何快速申请泛域名证书?细节提示:
- 如果开启了https,那么nginx配置中的
listen 80
需要调整为listen 443
,并且重新执下脚本,再重启nginx
- 如果开启了https,那么nginx配置中的
配置 SearXNG
配置SearXNG有两种方式,一种简单快速,一种灵活复杂。
- 简单快速
访问自己的搜索引擎首页,点击左上角【首选项】,可以自己开启关闭一些搜索引起以及部分定制化 - 灵活复杂
SearXNG是有自己的配置文件的,只是咱们使用docker启动的,所以配置文件需要进入docker容器内配置。- 先进入docker容器内
docker exec -it searxng /bin/sh
- 再编辑配置文件
vim /etc/searxng/settings.yml
具体各配置项控制的内容可以参考:https://raw.githubusercontent.com/searxng/searxng/master/searx/settings.yml
- 修改配置后,重新启动 SearXNG 容器以使更改生效:
docker restart searxng
- 先进入docker容器内
结语
通过以上步骤,你成功在云服务器上搭建属于自己的 SearXNG 搜索引擎,并使用 Nginx 进行反向代理。可以选择配置 HTTPS 以增强安全性,或者自定义 SearXNG 的搜索引擎设置,以获得更好的搜索体验。