我无法从浏览器访问scrapyd端口6800

时间:2017-07-15 19:38:42

标签: python scrapy scrapyd

我对此进行了大量搜索,它可能有一个我想念的简单解决方案。

我在本地计算机和服务器上都安装了scrapy + scrapyd。当我尝试“scrapyd”时,它们都可以正常工作。

我可以毫无问题地部署到本地,我也可以从浏览器访问localhost:6800,我可以在本地运行蜘蛛。

在远程运行scrapyd之后,我尝试使用与本地部署相同的方式部署到http://remoteip:6800/

我明白了,

Packing version 1500333306
Deploying to project "projectX" in http://remoteip:6800/addversion.json
Deploy failed: <urlopen error [Errno 111] Connection refused>

我也无法从本地PC访问http://remoteip:6800/,但我可以从远程PC上的ssh访问(有卷曲)

我在远程服务器上打开了入站和出站连接,我还缺少什么?

由于

2 个答案:

答案 0 :(得分:6)

检查防火墙是否已启用,通过运行(在Ubuntu上)

禁用它
sudo ufw disable

理想情况下,只允许tcp连接到6880而不是禁用防火墙,这样做

sudo ufw allow 6800/tcp
sudo ufw reload

检查scrapyd.conf请设置

bind_address=0.0.0.0

而不是

bind_address=127.x.x.x

0.0.0.0将使scrapyD可以访问服务器/实例外部的传入连接,而不仅仅是localhost。

然后停止scrapyD,我killall scrapyd停止scrapyd

然后使用命令scrapyd

重新启动scrapyD

注意: 如果您希望在与服务器断开连接后保持scrapyd运行,请执行此操作

nohup scrapyd >& /dev/null &

答案 1 :(得分:0)

我知道这个答案可能会晚,但是我希望它可以帮助像我这样的人。

从官方documentation起,它将在以下位置搜索配置文件:

  • /etc/scrapyd/scrapyd.conf(Unix)
  • c:\ scrapyd \ scrapyd.conf(Windows)
  • /etc/scrapyd/conf.d / *(按字母顺序,在Unix中)scrapyd.conf
  • 〜/ .scrapyd.conf(用户的主目录)

因此,您需要创建一个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 = 4
finished_to_keep = 100
poll_interval = 5.0
bind_address = 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

您需要做的是:将bind_address更改为0.0.0.0