Scrapyd 的安装

举报
崔庆才丨静觅 发表于 2021/10/03 22:52:39 2021/10/03
【摘要】 Scrapyd 是一个用于部署和运行 Scrapy 项目的工具。有了它,你可以将写好的 Scrapy 项目上传到云主机并通过 API 来控制它的运行。 既然是 Scrapy 项目部署,所以基本上都使用 Linux 主机,所以本节的安装是针对于 Linux 主机的。 ...

Scrapyd 是一个用于部署和运行 Scrapy 项目的工具。有了它,你可以将写好的 Scrapy 项目上传到云主机并通过 API 来控制它的运行。

既然是 Scrapy 项目部署,所以基本上都使用 Linux 主机,所以本节的安装是针对于 Linux 主机的。

相关链接

pip 安装

推荐使用 pip 安装,命令如下:

1
pip3 install scrapyd

配置

安装完毕之后需要新建一个配置文件 /etc/scrapyd/scrapyd.conf,Scrapyd 在运行的时候会读取此配置文件。

在 Scrapyd 1.2 版本之后不会自动创建该文件,需要我们自行添加。

执行命令新建文件:

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

写入如下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
[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
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

配置文件的内容可以参见官方文档:https://scrapyd.readthedocs.io/en/stable/config.html#example-configuration-file,在这里的配置文件有所修改,其中之一是 max_proc_per_cpu 官方默认为 4,即一台主机每个 CPU 最多运行 4 个 Scrapy Job,在此提高为 10,另外一个是 bind_address,默认为本地 127.0.0.1,在此修改为 0.0.0.0,以使外网可以访问。

后台运行

由于 Scrapyd 是一个纯 Python 项目,在这里可以直接调用 scrapyd 来运行,为了使程序一直在后台运行,Linux 和 Mac 可以使用如下命令:

1
(scrapyd > /dev/null &)

这样 Scrapyd 就会在后台持续运行了,控制台输出直接忽略,当然如果想记录输出日志可以修改输出目标,如:

1
(scrapyd > ~/scrapyd.log &)

则会输出 Scrapyd 运行输出到~/scrapyd.log 文件中。

运行之后便可以在浏览器的 6800 访问 WebUI 了,可以简略看到当前 Scrapyd 的运行 Job、Log 等内容,如图所示:

当然运行 Scrapyd 更佳的方式是使用 Supervisor 守护进程运行,如果感兴趣可以参考:http://supervisord.org/

访问认证

限制配置完成之后 Scrapyd 和它的接口都是可以公开访问的,如果要想配置访问认证的话可以借助于 Nginx 做反向代理,在这里需要先安装 Nginx 服务器。

在此以 Ubuntu 为例进行说明,安装命令如下:

1
sudo apt-get install nginx

然后修改 Nginx 的配置文件 nginx.conf,增加如下配置:

1
2
3
4
5
6
7
8
9
10
http {
server {
listen 6801;
location / {
proxy_pass http://127.0.0.1:6800/;
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/conf.d/.htpasswd;
}
}
}

在这里使用的用户名密码配置放置在 /etc/nginx/conf.d 目录,我们需要使用 htpasswd 命令创建,例如创建一个用户名为 admin 的文件,命令如下:

1
htpasswd -c .htpasswd admin

接下就会提示我们输入密码,输入两次之后,就会生成密码文件,查看一下内容:

1
2
cat .htpasswd
admin:5ZBxQr0rCqwbc

配置完成之后我们重启一下 Nginx 服务,运行如下命令:

1
sudo nginx -s reload

这样就成功配置了 Scrapyd 的访问认证了。

文章来源: cuiqingcai.com,作者:崔庆才,版权归原作者所有,如需转载,请联系作者。

原文链接:cuiqingcai.com/31049.html

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。