使用Searx搭建一個私人的搜索引擎平台,可展現Google/Bing等70多種搜索網站的搜索結果
手動安裝
項目地址:https://github.com/asciimoo/searx
1、安裝pip
#CentOS 6.x 32位
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
yum install -y python-pip
#CentOS 6.x 64位
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum install -y python-pip
#CentOS 7.x
yum install -y epel-release
yum install -y python-pip
#如果CentOS 7安装出现No package python-pip available,可以用以下命令进行安装
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
#Debian/Ubuntu系统
apt-get -y update
apt-get -y install python-pip
2、安裝git
#Debian/Ubuntu系统
apt-get -y install git
#CentOS系统
yum -y install git
3、編輯Searx
#拉取源码
git clone https://github.com/asciimoo/searx.git
#安装依赖
cd searx
pip install -r requirements.txt
#编辑配置文件
nano searx/settings.yml
修改名稱什麼參數,應該都看的懂,自行設置,這裡只說下4
種參數:
language:为搜索语言,默认en-US,如果你的搜索以中文为主,那就改成zh-CN,当然这个语言在搜索界面也可以设置
port:为监听端口,默认8888,可自行修改。
bind_address:为监控地址,默认为127.0.0.1,如果需要让ip地址能被外网访问,就修改为0.0.0.0,这里建议默认,然后再用域名反代即可。
secret_key:该参数为加密密匙,可自行设置,数值可以在ssh客户端使用openssl rand -hex 16命令生成。
這裡你也可以不用nano
編輯器,直接使用命令修改:
#修改language,默认为中文搜索结果
sed -i 's/language : "en-US"/language : "zh-CN"/g' searx/settings.yml
#修改secret_key
sed -i "s/ultrasecretkey/`openssl rand -hex 16`/g" searx/settings.yml
#修改bind_address,改了后就可以使用ip访问了,如果你使用域名的话,可以不修改
sed -i 's/bind_address : "127.0.0.1"/bind_address : "0.0.0.0"/g' searx/settings.yml
#修改port,比如修改成8000
sed -i "s/port : 8888/port : 8000/g" searx/settings.yml
更多參數設置可以參考→ 傳送門。
4、運行Searx
安裝screen
:
#CentOS系统
yum install screen -y
#Debian/Ubuntu系统
apt-get install screen -y
後台運行:
screen -dmS python searx/webapp.py
然後使用ip:port
訪問,如果你的bind_address
地址沒修改,可能瀏覽器會訪問不了,就需要反代了,方法後面會說。
如果你修改了bind_address
地址為0.0.0.0
,還打不開媒體界面的話,還需要開啟防火牆端口,使用命令:
#CentOS 6
iptables -I INPUT -p tcp --dport 8888 -j ACCEPT
service iptables save
service iptables restart
#CentOS 7
firewall-cmd --zone=public --add-port=8888/tcp --permanent
firewall-cmd --reload
如果你開了端口還不能打開,可能還需要去服務商後台開啟對應的端口。
Docker安裝
這裡貌似用官方的Dockerfile
文件構建鏡像的時候會報錯,所以博主自己寫了個Dockerfile
文件,安裝也很快。
Github地址:https://github.com/iiiiiii1/Docker-Searx
1、安裝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.service
2、安裝git
#Debian/Ubuntu系统
apt-get -y install git
#CentOS系统
yum -y install git
3、構建鏡像
#拉取源码
git clone https://github.com/iiiiiii1/Docker-Searx
#构建镜像,搜索语言默认已改成中文
cd Docker-Searx
docker build -t searx .
4、啟動鏡像
docker run -d --name searx -p 8888:8888 searx
啟動命令被我簡化了,詳細可參考→傳送門,然後使用ip:8888
,訪問即可,映射端口可自行修改,比如-p 8000:8888
。
域名反代
這裡是建議使用域名反代的,反代可以用Nginx
、Apache
、Caddy
,這裡只說寶塔和Caddy
。如果你網站有寶塔,就可以使用寶塔進行反代,如果沒有,建議使用第2
種的Caddy
反代,配置很快。
1、寶塔反代
先進入寶塔面板,然後點擊左側網站,添加站點,然後再點擊添加好了的域名名稱,這時候就進入了站點配置,點擊反向代理,目標URL
填入http://127.0.0.1:8888
,再啟用反向代理即可。至於啟用SSL
就不說了,直接在站點配置就可以啟用。
2、Caddy反代
安裝Caddy
:
wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubiBackup/doubi/master/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh
#备用地址
wget -N --no-check-certificate https://www.moerats.com/usr/shell/Caddy/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh
配置Caddy
:
#以下全部内容是一个整体,请修改域名后一起复制到SSH运行!
#http访问,该配置不会自动签发SSL
echo "www.moerats.com {
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}
}
}" > /usr/local/caddy/Caddyfile
#https访问,该配置会自动签发SSL,请提前解析域名到VPS服务器
echo "www.moerats.com {
gzip
tls admin@moerats.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}
}
}" > /usr/local/caddy/Caddyfile
tls
參數會自動幫你簽發ssl
證書,如果你要使用自己的ssl
,改為tls /root/xx.crt /root/xx.key
即可。後面為ssl
證書路徑。
啟動Caddy
:
/etc/init.d/caddy start
就可以打開域名進行訪問了。
3、Nginx配置
如果你使用其它的,這裡就大概發個Nginx
反代配置,直接添加到配置文件即可,不然搜出來的結果可能不會讓你滿意。
#在配置文件里添加
location / {
proxy_pass http://127.0.0.1:8888;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Remote-Port $remote_port;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
}
最後使用的時候,記得在高級設置那裡將搜索語言設置成你需要的就行了。