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

I can't access scrapyd port 6800 from browser

我对此进行了很多搜索,它可能有一个我所缺少的简单解决方案。

我在本地机器和服务器上都安装了 scrapy + scrapyd。当我尝试 "scrapyd".

时,它们都工作正常

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

在远程 运行ning 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 访问(使用 curl)

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

谢谢

首先检查它是否运行ning,运行 curl localhost:6800 在ScrapyD 运行ning

的服务器上

检查是否启用了防火墙

sudo ufw status

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

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 将使 server/instance 之外的传入连接可以访问 scrapyD,而不仅仅是本地主机。

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

然后使用命令scrapyd

重启scrapyD

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

nohup scrapyd >& /dev/null &

另见我对

的回答

我知道这个回答可能会迟到,但我希望它能帮助像我一样的人。

来自官方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