如何用密码保护Scrapyd UI?

时间:2017-03-30 10:08:46

标签: linux .htaccess scrapy scrapyd

我将我的网站公开,并且Scrapyd在6800端口运行,如http://website.com:6800/

我不希望任何人看到我的抓取工具列表。我知道任何人都可以很容易地猜到输入端口6800并且可以看到发生了什么。

我几乎没有问题,回答其中任何一个都会对我有帮助。

  1. 有没有办法密码保护Scrapyd UI?
  2. 我可以用密码保护Linux上的特定端口吗?我知道可以用IPTables来完成只允许特殊的IP但这不是一个好的解决方案
  3. 我应该更改Scrapyd的源代码吗?
  4. 我是否可以仅通过.htaccess密码保护特定端口?

3 个答案:

答案 0 :(得分:1)

你应该bind address要打电话的机器。

如果要调用端点的localhost只是将它绑定到127.0.0.1并且瞧,那么该地址对外部ips不起作用。

答案 1 :(得分:1)

使用最新版本的scrapyd(写这个时为1.2.1)。 Scrapyd 支持基本的 HTTP 身份验证。为了启用它,只需在scrapyd.conf中添加用户名和密码,如下

pip install git+https://github.com/scrapy/scrapyd.git
[scrapyd]
eggs_dir          = /var/lib/scrapyd/eggs

...
username    = username_here
password    = password_here
...

答案 2 :(得分:0)

自scrapyd 1.2.0版起,默认bind address为127.0.0.1

要添加密码保护,请使用此gist,它使用nginx作为反向代理,为scrapyd添加基本身份验证。

您也可以查看scrapyd-authenticated存储库。