目录[-]

Scrapyd+Gerapy +nginx+ubuntu16.04项目部署!让一切变得简单

名词介绍

    Scrapyd 是一个用于部署和运行scrapy项目的工具,这样的话我们只需要通过API接口,来查看项目的运行情况和状态。
    GitHub:https://github.com/scrapy/scrapyd
    PyPI:https://pypi.python.org/pypi/scrapyd
    官方文档:https://scrapyd.readthedocs.io
    Gerapy 是一款分布式爬虫管理框架,支持 Python 3,基于 Scrapy、Scrapyd、
    Scrapyd-Client、Scrapy-Redis、Scrapyd-API、Scrapy-Splash、Jinjia2、Django、Vue.js 开发.由崔大开发
    崔大个人博客有详细介绍:https://cuiqingcai.com/4959.html

安装与配置

安装命令:

pip3 install scrapyd

配置: 安装完成,我们需要新建一个配置文件配置,Scrapyd运行的时候会读取该文件。

执行命令:

sudo mkdir /etc/scrapyd sudo vi /etc/scrapyd/scrapyd.conf

填写以下文件内容:

[scrapyd]
eggs_dir    = eggs
logs_dir    = logs
items_dir   =
jobs_to_keep = 5
dbs_dir     = dbs
max_proc    = 0
max_proc_per_cpu = 10
finished_to_keep = 100
poll_interval = 5.0
bind_address = 0.0.0.0 #修改此供外网访问,如果后续配置nginx,为了安全问题,则设置为127.0.0.1
http_port   = 6800
debug       = off
runner      = scrapyd.runner
application = scrapyd.app.application
launcher    = scrapyd.launcher.Launcher
webroot     = scrapyd.website.Root

[services] schedule.json = scrapyd.webservice.Schedule cancel.json = scrapyd.webservice.Cancel addversion.json = scrapyd.webservice.AddVersion listprojects.json = scrapyd.webservice.ListProjects listversions.json = scrapyd.webservice.ListVersions listspiders.json = scrapyd.webservice.ListSpiders delproject.json = scrapyd.webservice.DeleteProject delversion.json = scrapyd.webservice.DeleteVersion listjobs.json = scrapyd.webservice.ListJobs daemonstatus.json = scrapyd.webservice.DaemonStatus

启动Scrapyd

执行命令:

scrapyd我们会发现成功运行,监听6800端口,此时我们可以通过外网来进行访问,如图所示:

分隔符


安装与配置nginx

安装命令: sudo apt-get install nginx 目录介绍
/usr/sbin/nginx:主程序
/etc/nginx:存放配置文件
/usr/share/nginx:存放静态文件
/var/log/nginx:存放日志

我们需要修改一下配置文件,执行命令:

vim /etc/nginx/nginx.conf 主要写入此配置
server {
        listen 6801;
        location / {
        proxy_pass http://127.0.0.1:6800/;
        #我使用的是用户认证的方式,所以不需要的话,可以注释下边两行
        auth_basic "Restricted";
        auth_basic_user_file /etc/nginx/conf.d/.htpasswd;
        }
}
用户认证配置:

安装htpasswd

     htpasswd是apache的一个工具,该工具主要用于建立和更新存储用户名、密码的文本文件,主要用于对基于http用户的认证。

sudo apt install htpasswd

生成用户密码

htpasswd -c /etc/nginx/connf.d/.htpasswd

回车输入密码

查看账户和密码:

cat /etc/nginx/conf.d/.htpassed

重启nginx

nginx -c /etc/nginx/nginx.conf 如果重启失败,找到pid号,然后结束进程 ps -A kill -9 pid号 然后再执行上一条命令 此时通过访问公网6801端口,我们就会看到上边的页面,此时我们的scrapyd环境就搭建完成了。

Gerapy的安装与使用

安装:

pip3 install gerapy

检测安装: 输出一下内容就证明安装成功

$ gerapy Usage: gerapy init [--folder=<folder>] gerapy migrate gerapy createsuperuser gerapy runserver [<host:port>] gerapy makemigrations

初始化:(在任一路径都可以)

gerapy init

数据库初始化:

cd gerapy gerapy migrate 这样它就会在 gerapy 目录下生成一个 SQLite 数据库,同时建立数据库表。因为是用django搭建的,所以就会出现建表的输出。

启动服务:

gerapy runserver

接下来我们在浏览器中打开 http://localhost:8000/,就可以看到 Gerapy 的主界面了:

主机管理:

需要添加 IP、端口,名称,以及用户反响代理认证,点击创建即可完成添加,点击返回即可看到当前添加的 Scrapyd 服务列表,样例如下所示:

项目管理:

假设现在我们有一个 Scrapy 项目,如果我们想要进行管理和部署,这时我们只需要将项目拖动到刚才 gerapy 运行目录的 projects 文件夹下,这样我们就可以在项目管理页面看到了。