什么是searxng
searxng是一个基于python的,完全开源的一个搜索引擎结果聚合软件(可以说是一个可以自己部署的私有化搜索引擎)。通过使用searxng进行搜索,可以在一个页面中同时获取来自百度、bing、yandex等搜索引擎的结果。这个软件通过将你输入的搜索词发送到各个搜索引擎之中,然后将各大搜索引擎返回来的结果根据自己的算法进行重新排序,返回给用户。通过使用这个searxng,不仅可以避免自己被各个搜索引擎的跟踪器跟踪,而且(也是最重要的),由于数据是searxng处理过的,所以理所当然,搜索结果是没有任何广告的。
下面是示例的界面。
docker环境的准备
这个就不必多说,Ubuntu上面要安装好dockers以及docker-compose 才能进行后续的安装
又及:如果镜像拉取不下来的话,可以尝试将docker的镜像源换位毫秒镜像(https://1ms.run)
配置文件的准备
选择好一个心仪的目录,然后新建一个文件夹,我们要在里头放我们的配置文件
在这个文件夹中,新建一个文件叫做docker-compose.yml
然后往docker-compose.yml这个文件中写入下面的配置文件
version: '3'
services:
searxng:
image: searxng/searxng:latest
container_name: searxng
ports:
- "8080:8080"
volumes:
- ./settings:/etc/searxng
environment:
- SEARXNG_BASE_URL=http://localhost:8080/
restart: unless-stopped
写入完进行保存
启动容器
使用root权限登录服务器终端,换到刚刚的目录,执行下面的命令来拉取镜像,然后进行配置
前台模式启动命令(会实时输出容器中的内容)
docker-compose up
后台模式(会在后台运行)
docker-compose up -d
如果配置文件有更新,重启容器的命令如下
docker compose up -d
启动完成后,前往访问服务器8080端口,看看是否能够进行搜索。(记得关注下防火墙是否放行端口)
备注:为了方便后续的修改,我这个配置文件会将searxng的docker内部的配置文件映射到我们刚刚运行目录的settings文件夹,其中包含了settings.yml和uwsgi.ini这两个文件,方便我们进行后续的修改
反向代理的配置
由于一些因素,如果想要对这个程序进行反向代理的话,无需重写host(重写了更好)就可以进行反向代理,
location ^~ /
{
proxy_pass http://127.0.0.1:8081;
proxy_set_header Host search.example.org;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_http_version 1.1;
# proxy_hide_header Upgrade;
add_header X-Cache $upstream_cache_status;
#Set Nginx Cache
set $static_fileu0Ll0eC1 0;
if ( $uri ~* "\.(gif|png|jpg|css|js|woff|woff2)$" )
{
set $static_fileu0Ll0eC1 1;
expires 1m;
}
if ( $static_fileu0Ll0eC1 = 0 )
{
add_header Cache-Control no-cache;
}
}
当然,别忘了在docker-compose.yml中将SEARXNG_BASE_URL改为你自己的地址。