zsky自建磁力链接搜索引擎教程


zsky主要分为爬虫、网站、数据库、索引,爬虫基于socket、bencode库,网站基于flask库,数据库为mysql,索引为sphinx。

安装脚本只支持Centos7+Python2.7环境

主机配置要求:至少1G内存、至少100G硬盘,至少1G SWAP,具有公网IP的国外主机/服务器

yum -y install git 
git  clone https://github.com/magrco/zsky.git
cd zsky&&sh zsky.sh

安装脚本执行过程中会提示输入绑定的域名、数据库密码、管理员用户名、密码、邮箱,输入后耐心等待即可访问 http://域名

后台地址 http://域名/admin

安装过程中会提示输入数据库密码。

修改simdht_worker.py里的max_node_qsize的大小调节爬取速度(队列大小)

执行 python manage.py init_db 创建表/平滑升级表结构

执行 python manage.py create_user 创建管理员

执行 python manage.py changepassword 修改管理员密码

执行 systemctl start gunicorn 启动网站

执行 systemctl start mariadb 启动数据库

执行 systemctl status mariadb 查看数据库运行状态

执行 systemctl restart mariadb 重新启动数据库

执行 systemctl status gunicorn 查看gunicorn运行状态

执行 systemctl restart gunicorn 重新启动网站

执行 systemctl restart indexer 手动重新索引

执行 systemctl start searchd 开启搜索进程

执行 systemctl status searchd 查看搜索进程运行状态

执行 systemctl restart searchd 重新启动搜索进程

Q:如何绑定多个域名?

A:在/etc/nginx/nginx/nginx.conf文件内修改,多个域名用空格隔开,修改完成后执行nginx -s reload生效

Q:如何修改站点名?

A:修改manage.py里的常量sitename

Q:如何修改地图里的域名?

A:修改manage.py里的常量domain

Q:如何修改后台地址?

A:修改manage.py中的以下语句中的url=后面的地址: admin = Admin(app,name=’管理中心’,base_template=’admin/my_master.html’,index_view=MyAdminIndexView(name=’首页’,template=’admin/index.html’,url=’/fucku’))

Q:如何屏蔽违禁词

A:在sensitivewords.txt这个文件里面添加违禁词,一行一个,支持.*?等正则符号,添加完成后systemctl restart gunicorn生效

Q:如何实现远程主机反向代理本机的程序?

A:修改本机的/etc/systemd/system/gunicorn.service其中的127.0.0.1:8000修改为0.0.0.0:8000然后执行systemctl daemon-reload,然后执行systemctl restart gunicorn,本机不开启nginx,远程主机开启nginx、配置反向代理、绑定域名即可,nginx的配置文件参考程序内的nginx.conf 。

Q:如何限制/提高爬取速度?

A:修改simdht_worker.py里的max_node_qsize=后面的数字,越大爬取越快,越小爬取越慢

Q:如何修改数据库密码?

A:执行mysqladmin -uroot -p password 123456!@#$%^ //将提示输入当前密码,123456!@#$%^是新密码

Q:修改数据库密码后怎么修改程序里的配置?

A:修改manage.py里的mysql+pymysql://root:密码@127.0.0.1、修改manage.py里的DB_PASS、修改simdht_worker.py里的DB_PASS、修改sphinx.conf里的sql_pass

Q:怎么确定爬虫是在正常运行?

A:执行 ps -ef|grep -v grep|grep simdht 如果有结果说明爬虫正在运行

Q:更新manage.py/模板后怎么立即生效?

A:执行 systemctl restart gunicorn 重启gunicorn

Q:为什么首页统计的数据小于后台的数据?

A:在数据量变大后,索引将占用CPU 100%,非常影响用户访问网站,为了最小程度减小此影响 默认设置为每天早上5点更新索引,你想现在更新爬取结果的话,手动执行索引 systemctl restart indexer ,需要注意的是,数据量越大 索引所耗费时间越长

Q:如何查看索引是否成功?

A:执行 systemctl status indexer 可以看到索引记录

Q:觉得索引速度慢,如何加快?

A:修改sphinx.conf里面的mem_limit = 512M ,根据你的主机的内存使用情况来修改,数值越大索引越快,最大可以设置为2048M

Q:如何确定搜索进程是否正常运行

A:执行 systemctl status searchd ,如果是绿色的running说明搜索进程完全正常

Q:如何备份数据库?

A:执行 mysqldump -uroot -p zsky>/root/zsky.sql 导出数据库 //将提示输入当前密码,数据库导出后存在/root/zsky.sql

Q:数据库备份后,现在重新安装了程序,如何导入旧数据?

A:执行 mysql -uroot -p zsky

标签:

文章发布时间:2021-01-28