searX 搭建个人聚合搜索引擎教程
最近懒惰附身,有一段时间没更新新内容了。几个月前水了一篇文章:还有什么搜索引擎可以替代百度?里面列举了很多其他搜索引擎作为替代方案。不过呢,介绍的这些搜索引擎也各有优缺点,比如使用谷歌进行搜索,那么搜索结果一般来说非常精确,不过谷歌会尽可能的搜集你的隐私信息,然后精确的给你推荐广告。又如使用 DuckDuckGo ,不会追踪你的个人隐私,不过有时候搜索结果可能没那么精确,这时候还是需要使用 !g 跳转到谷歌搜索。
那么有没有这样一款搜索引擎,既不追踪你的隐私,也能给出非常棒的搜索结果呢?当然还是有的,这个搜索引擎就是 startpage ,不过该搜索引擎在国内已经无法使用,访问需搭梯。
基本上 startpage 已经非常好用了,隐私和搜索结果来说都做得非常好,就日常使用来说已经绰绰有余了。不过呢,对于喜欢折腾的小伙伴来说,如果可以搭建一个类似搜索引擎,并且可以做为个人专属搜索引擎来使用,既无广告,也无隐私泄露,那么是不是也是一件非常 cool 的事情。毕竟,生命不止,折腾不息。:)
扯了这么多废话,终于强行回到了正题(笑cry)。其实今天要介绍的就是如何搭建一个个人搜索引擎 searX 。如果你之前已经了解过了 searX ,那么以下内容请忽略。文章末尾会附上搭建完成后的实例。
关于 searX
关于 searX ,是一个基于 Python 开发的完全免费的开源项目, Github 地址:https://github.com/asciimoo/searx 。
Searx 从大约 82 种不同的搜索引擎中抓取搜索结果,然后整理优化后展示在前台搜索结果页面上。这些搜索引擎包括 Bing,Google,Reddit,Wikipedia,Yahoo和Yandex 等。而且还可以通过首页“首选项”界面进行设置,可以自定义设置是否启用、关闭某个搜索引擎的抓取结果。而且每次搜索结果会进行分类,分成 全部、文件、图片、IT、地图、音乐、新闻、学术、社交媒体、视频。根据这些分类,很容易找的自己想要的搜索内容。
在开始搭建之前,需要你入手一台国外 vps,关于国外 vps 可以参考: vps 推荐。为了搭建的简单快速,下面使用 Docker 的方法进行搭建。如果你不了解 Docker,那么在开始操作前,可以先简单了解下 Docker 的基本原理与及使用,关于 Docker 介绍可以参考这个文档:https://yeasy.gitbooks.io/docker_practice/ 。基本了解下镜像、容器,与及常用的创建、删除操作即可。
使用 Docker 搭建 searX
安装 Docker #CentOS 6 rpm -iUvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm yum update -y yum -y install docker-io service docker start chkconfig docker on
#CentOS 7、Debian、Ubuntu curl -sSL https://get.docker.com/ | sh systemctl start docker systemctl enable docker
构建 Dockerfile
进入 /root 目录(也可以选择其他目录):
cd /root/
创建 Dockerfile 文件:
vi Dockerfile
然后往文件里面写入:
FROM python:2.7.15-jessie WORKDIR / RUN printf "deb http://archive.debian.org/debian/ jessie main\ndeb-src http://archive.debian.org/debian/ jessie main\ndeb http://security.debian.org jessie/updates main\ndeb-src http://security.debian.org jessie/updates main" > /etc/apt/sources.list && \ apt-get -y update && \ apt-get -y install git && \ git clone https://github.com/asciimoo/searx.git && \ cd searx && \ pip install -r requirements.txt && \ sed -i "s/ultrasecretkey/`openssl rand -hex 16`/g" searx/settings.yml && \ sed -i 's/bind_address : "127.0.0.1"/bind_address : "0.0.0.0"/g' searx/settings.yml && \ sed -i 's/language : "en-US"/language : "zh-CN"/g' searx/settings.yml && \ cd searx/templates/oscar/ && \ sed -i '78d' preferences.html EXPOSE 8888 CMD python /searx/searx/webapp.py
如图:
然后 wq 保存即可。
构建镜像
docker build -t searx .
构建成功后如下:
启动镜像
docker run -d --name searx -p 8888:8888 searx
这样,就搭建完成了,就可以使用 ip + 端口的方式进行访问,比如:http://178.62.73.xxx:8888/ 。访问后首页长这个样子:
然后点击又上方的首选项,进入设置选项:
可以自己设置是否关闭某项设置,比如开启关闭 duckduckgo、google 等搜索引擎支持,与及配置文件、图片、音乐、学术等搜索引擎。更多配置这里就不详细,如果你搭建后打开就一目了然。
如果是自己使用的话,那么使用 ip + 端口的方式已经可以满足了,不过有时候 ip 不好记,如果配置成域名访问,那么会方便很多。下面介绍下如何配置域名访问。
配置域名访问 SearX
首先,需要你已经购买入手了域名,免费域名可以看这篇教程:freenom免费域名申请及设置域名解析。然后把域名解析到你的服务器 ip 。关于域名解析这里忽略。
下载安装 Caddy
curl https://getcaddy.com | bash -s personal mkdir -p /etc/caddy && mkdir -p /etc/ssl/caddy
配置 Caddy 配置文件,执行如下命令:
echo "www.coderschool.cn { gzip proxy / 127.0.0.1:8888 { header_upstream Host {host} header_upstream X-Real-IP {remote} header_upstream X-Forwarded-For {remote} header_upstream X-Forwarded-Proto {scheme} } }" > /etc/caddy/Caddyfile
#https访问,该配置会自动签发SSL,请提前解析域名到VPS服务器 echo "www.coderschool.cn { gzip tls admin@xxxx.com proxy / 127.0.0.1:8888 { header_upstream Host {host} header_upstream X-Real-IP {remote} header_upstream X-Forwarded-For {remote} header_upstream X-Forwarded-Proto {scheme} } }" > /etc/caddy/Caddyfile
上面两个 echo 命令分开执行即可,注意,上面配置的 www.coderschool.cn 域名记得改为你自己的域名:
echo "[Unit] Description=Caddy HTTP/2 web server Documentation=https://caddyserver.com/docs After=network-online.target Wants=network-online.target systemd-networkd-wait-online.service [Service] Restart=on-abnormal User=root Group=root Environment=CADDYPATH=/etc/ssl/caddy ExecStart=/usr/local/bin/caddy -log stdout -agree=true -conf=/etc/caddy/Caddyfile ExecReload=/bin/kill -USR1 \$MAINPID KillMode=mixed KillSignal=SIGQUIT TimeoutStopSec=5s [Install] WantedBy=multi-user.target" > /etc/systemd/system/caddy.service
然后启动Caddy:
systemctl start caddy systemctl enable caddy
上面会自动签发 https 免费证书,使用的是 Let's Encrypt。然后重新使用域名访问,就可以正常访问了。
一个搭建完的实例:https://srx.sx/ 。(非本站搭建,收集与互联网,本站搭建完成的测试实例就不公开了)。如果开启了谷歌抓取,用的人多可能会无法抓取到结果,受到谷歌验证码限制。所以建议搭建完后,仅个人使用。
关于 searX 的搭建和配置就介绍到这,如果有什么问题,欢迎留言。
9 Comments
这个牛逼,不过为什么你不放一个演示站出来。
这个东西不错,我也搭建个试试
可以交换链接吗?
可以的。
已添加贵站链接
好的 也添加好了 首页有缓存 稍后显示。
过来留言,不错文章,厉害了
VPS的内存只有512M,够吗?
可以的。