我如何 运行 服务器上的 Scrapyd

How can I run Scrapyd on a server

从最近开始,Scrapinghub 在他们的免费包中不再有周期性的工作,这是我用来 运行 我的 Scrapy 爬虫的东西。

因此,我决定改用Scrapyd。所以我继续并获得了一个虚拟服务器 运行ning Ubuntu 16.04。 (这是我第一次搭建和运行搭建服务器,所以请多多包涵)

按照 scrapyd.readthedocs.io 上的说明,我使用 pip 安装了 Scrapyd:

$ pip install scrapyd

(那是在我发现 Ubuntu 推荐的使用 apt-get 的方法实际上不再受支持后,参见 Github)。

然后我使用 SSH 登录到我的服务器,然后 运行 Scrapyd 只需 运行ning

$ scrapyd

据我所知,一切看起来都很好:

2017-10-30 17:31:19+0000 [-] Log opened.
2017-10-30 17:31:19+0000 [-] twistd 16.0.0 (/usr/bin/python 2.7.12) starting up.
2017-10-30 17:31:19+0000 [-] reactor class: twisted.internet.epollreactor.EPollReactor.
2017-10-30 17:31:19+0000 [-] Site starting on 6800
2017-10-30 17:31:19+0000 [-] Starting factory <twisted.web.server.Site instance at 0x7f644752bfc8>
2017-10-30 17:31:19+0000 [Launcher] Scrapyd 1.2.0 started: max_proc=4, runner=u'scrapyd.runner'

我希望看到一个 Web 界面(描述 here) when I go to my IP at http://82.165.102.18:6800

相反,我只收到错误消息 "This site can’t be reached 82.165.102.18 refused to connect."

当我尝试在本地 运行 Scrapyd 时,一切正常,我在 http://localhost:6800/.

获得了网络界面

我试过禁用防火墙 (UFW),但没有用。

此时,我迷路了。如果您有任何想法,请告诉我!

非常感谢!

如果你可以在本地而不是通过网络访问你的 Scrapyd 实例,我怀疑 Scrapyd 只在本地主机上侦听。请务必在您的 scrapyd.conf:

中包含此行
bind_address = 0.0.0.0

它指示Scrapyd 监听所有接口。 bind_address 默认为 127.0.0.1,因此默认情况下它只侦听本地主机。