VPS搭建owllook小说搜索引擎 - 免费资源屋

/ 0评 / 0

导读

摘录自项目主页说明:

owllook 是一个基于其他搜索引擎构建的垂直小说搜索引擎,owllook目的是让阅读更简单、优雅,让每位读者都有舒适的阅读体验,如搜书、阅读、收藏、追更、推荐等功能。

owllook 是一款使用 Python 编写的小说搜索引擎,无论结构以及用户体验来说都挺不错,系统使用 MongoDBRedis 做数据存储,且附带众多规则,搭建后可迅速开设一个简单的小说搜索引擎。

本次,可乐将以 CentOS7 作为基础系统,一步步搭建出一个简单的小说搜索引擎。

演示可观看:https://read.free.gd

系统安装

由于程序依赖于 Python、MongoDB、Redis 等,在安装之前,我们需要先解决依赖环境!

因可乐是在 Proxmox 中进行安装,所以 MongoDB 以及 Redis 都会存放在不同的 LXC 中,避免单机压力过大问题。

MongoDB

在 Proxmox 中开设一台 LXC 小鸡,系统选择 Ubuntu 20.04,并配置网络 10.10.10.2,开启后进入控制台开始安装:

apt update && apt upgrade -y && apt install wget -y
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.16.tgz
tar zxf mongodb-linux-x86_64-4.0.16.tgz
mv mongodb-linux-x86_64-4.0.16 /usr/local/mongodb
mkdir -p /var/lib/mongodb
useradd -s /sbin/nologin mongod
chown -R mongod:mongod /var/lib/mongodb
cat > /etc/mongod.conf << EOF
# mongod.conf
# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/
# where to write logging data.

systemLog:
  destination: file
  logAppend: true
  path: /var/lib/mongodb/mongod.log

# Where and how to store data.
storage:
  dbPath: /var/lib/mongodb
  journal:
    enabled: true

#  engine:
#  mmapv1:
#  wiredTiger:
# how the process runs
processManagement:
  fork: true  # fork and run in background
  pidFilePath: /var/run/mongodb/mongod.pid

# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0
  unixDomainSocket:
    enabled: false

# security:
#  authorization: enabled
# operationProfiling:
# replication:
# sharding:
EOF
cat > /lib/systemd/system/mongod.service << EOF
[Unit]
Description=MongoDB Database Server
After=multi-user.target
Documentation=https://docs.mongodb.org/manual

[Service]
User=mongod
Group=mongod
Environment="OPTIONS=-f /etc/mongod.conf"
EnvironmentFile=-/etc/sysconfig/mongod
ExecStart=/usr/local/mongodb/bin/mongod $OPTIONS
ExecStartPre=/bin/mkdir -p /var/run/mongodb
ExecStartPre=/bin/chown mongod:mongod /var/run/mongodb
ExecStartPre=/bin/chmod 0755 /var/run/mongodb
PermissionsStartOnly=true
PIDFile=/var/run/mongodb/mongod.pid
Type=forking
LimitFSIZE=infinity
LimitCPU=infinity
LimitAS=infinity
LimitNOFILE=64000
LimitNPROC=64000
LimitMEMLOCK=infinity
TasksMax=infinity
TasksAccounting=false

[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable mongod.service
systemctl start mongod.service

Redis

在 Proxmox 中开设一台 Alpine 小鸡,配置网络 10.10.10.3,进入控制台执行命令:

apk update
apk upgrade
apk add redis
rc-update add redis default
service redis start

Python

最后再开启一台小鸡,这次选用 CentOS 7 操作系统,配置 IPv6 为 2606:4700:xxxx::xxxx,内网地址为 10.10.10.3,其实本次选择三个不同的系统,也只是想说明下,任何东西其实在不同的系统中都可以完成对应的操作,只是取决于是否适合而已。

yum -y update
yum -y install epel-release
yum -y install wget git curl screen bzip2
wget https://repo.anaconda.com/archive/Anaconda3-2019.10-Linux-x86_64.sh
chmod -R a+x Anaconda3-2019.10-Linux-x86_64.sh
./Anaconda3-2019.10-Linux-x86_64.sh

根据提示一次输入:EnteryesEnter

完成后刷新一次 Shell 并创建 Python 3.6 环境:

source ~/.bashrc
conda create -n python36 python=3.6

owllook

继续在 CentOS 7 中执行命令:

git clone https://github.com/howie6879/owllook.git /root/owllook
cd owllook
pip install pipenv
pipenv install --python ~/anaconda3/envs/python36/bin/python3.6

若上面最后一条命令执行失败,请执行下面两条命令:

pipenv run pip install pip==18.0
pipenv install

安装完成后,修改 /root/owllook/owllook/config/config.py,将

VAL_HOST = os.getenv('VAL_HOST', 'true')

修改为

VAL_HOST = os.getenv('VAL_HOST', 'false')

同时查找所有涉及到 MongoDB 及 Redis 地址的文件,将其改为自己的 MongoDB 与 Redis 地址。

开启反代

在启动程序之前,咱们先安装一个 Nginx 对程序进行反代,否则每次访问都得加上端口号。

yum install -y nginx
systemctl enable nginx

创建文件 /etc/nginx/conf.d/owllook.conf

server {
    listen                  80;
    server_name             read.free.gd;

    location / {
        proxy_set_header    X-Real-IP remote_addr;
        proxy_set_header    X-Forwarded-Forproxy_add_x_forwarded_for;
        proxy_set_header    X-Forwarded-Proto scheme;
        proxy_set_header    Hosthttp_host;
        proxy_set_header    X-NginX-Proxy true;
        proxy_pass          http://0.0.0.0:8001;
        proxy_redirect      off;
        proxy_http_version  1.1;
        proxy_set_header    Upgrade $http_upgrade;
        proxy_set_header    Connection "upgrade";
    }
}

启动 Nginx:

systemctl start nginx

启动 owllook

最后,在控制台中执行如下命令启动 owllook

cd /root/owllook
pipenv run gunicorn -c owllook/config/gunicorn.py --worker-class sanic.worker.GunicornWorker owllook.server:app

接着打开网站看看,已经成功可用了!

发表评论

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