Meh*_*pek 0 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>
Run Code Online (Sandbox Code Playgroud)
我也无法从我的本地PC 访问http:// remoteip:6800 /但我可以从远程PC上的ssh访问(有卷曲)
我在远程服务器上打开了入站和出站连接,我还缺少什么?
谢谢
检查防火墙是否已启用,通过运行(在Ubuntu上)禁用它
sudo ufw disable
Run Code Online (Sandbox Code Playgroud)
理想情况下,只允许tcp连接到6880而不是禁用防火墙,这样做
sudo ufw allow 6800/tcp
sudo ufw reload
Run Code Online (Sandbox Code Playgroud)
检查你的scrapyd.conf请设置
bind_address=0.0.0.0
Run Code Online (Sandbox Code Playgroud)
代替
bind_address=127.x.x.x
Run Code Online (Sandbox Code Playgroud)
0.0.0.0 将使scrapyD可用于服务器/实例外部的传入连接,而不仅仅是localhost.
然后停止scrapyD,我做killall scrapyd停止报废
然后使用命令重启scrapyD scrapyd
注意:如果要scrapyd在断开与服务器的连接后继续运行,请执行此操作
nohup scrapyd >& /dev/null &
Run Code Online (Sandbox Code Playgroud)