9

searX 搭建个人聚合搜索引擎教程

Posted by 撒得一地 on 2019年7月3日 in 建站教程, 杂谈

最近懒惰附身,有一段时间没更新新内容了。几个月前水了一篇文章:还有什么搜索引擎可以替代百度?里面列举了很多其他搜索引擎作为替代方案。不过呢,介绍的这些搜索引擎也各有优缺点,比如使用谷歌进行搜索,那么搜索结果一般来说非常精确,不过谷歌会尽可能的搜集你的隐私信息,然后精确的给你推荐广告。又如使用 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

如图:

创建Dockerfile文件

然后 wq 保存即可。

构建镜像

	docker build -t searx .

构建镜像

构建成功后如下:

镜像构建成功

启动镜像

	docker run -d --name searx -p 8888:8888 searx 

成功启动searx镜像

这样,就搭建完成了,就可以使用 ip + 端口的方式进行访问,比如:http://178.62.73.xxx:8888/ 。访问后首页长这个样子:

searx首页界面

然后点击又上方的首选项,进入设置选项:

searx配置首选项

可以自己设置是否关闭某项设置,比如开启关闭 duckduckgo、google 等搜索引擎支持,与及配置文件、图片、音乐、学术等搜索引擎。更多配置这里就不详细,如果你搭建后打开就一目了然。

进入searx首选项配置页面

如果是自己使用的话,那么使用 ip + 端口的方式已经可以满足了,不过有时候 ip 不好记,如果配置成域名访问,那么会方便很多。下面介绍下如何配置域名访问。

配置域名访问 SearX

首先,需要你已经购买入手了域名,免费域名可以看这篇教程:freenom免费域名申请及设置域名解析。然后把域名解析到你的服务器 ip 。关于域名解析这里忽略。

下载安装 Caddy

	curl https://getcaddy.com | bash -s personal

	mkdir -p /etc/caddy && mkdir -p /etc/ssl/caddy

安装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 域名记得改为你自己的域名:

生成caddy配置文件
 
执行如下命令,创建 systemd 服务文件:

	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

生成systemd服务文件

然后启动Caddy:

	systemctl start caddy

	systemctl enable caddy

上面会自动签发 https 免费证书,使用的是 Let's Encrypt。然后重新使用域名访问,就可以正常访问了。

一个搭建完的实例:https://srx.sx/ 。(非本站搭建,收集与互联网,本站搭建完成的测试实例就不公开了)。如果开启了谷歌抓取,用的人多可能会无法抓取到结果,受到谷歌验证码限制。所以建议搭建完后,仅个人使用。

关于 searX 的搭建和配置就介绍到这,如果有什么问题,欢迎留言。

标签:, ,

上一篇:

下一篇:

相关推荐

9 Comments

发表评论

电子邮件地址不会被公开。 必填项已用*标注

7 + 9 = ?

网站地图|XML地图

Copyright © 2015-2024 技术拉近你我! All rights reserved.
闽ICP备15015576号-1 版权所有©psz.