【问题标题】:How to password protect Scrapyd UI?如何用密码保护 Scrapyd UI?
【发布时间】:2026-01-04 22:20:03
【问题描述】:

我的网站可供公众使用,并且 Scrapyd 在端口 6800 上运行,例如 http://website.com:6800/

我不希望任何人看到我的爬虫列表。我知道任何人都可以轻松猜出输入 6800 端口并查看发生了什么。

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

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

【问题讨论】:

    标签: linux .htaccess scrapy scrapyd


    【解决方案1】:

    您应该bind address 将拨打电话的机器。

    如果它是要调用端点的本地主机,只需将其绑定到 127.0.0.1 并且瞧,该地址不适用于外部 ips。

    【讨论】:

      【解决方案2】:

      使用最新版本的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
      ...
      

      【讨论】:

      【解决方案3】:

      从 scrapyd 版本 1.2.0 开始,默认 bind address 是 127.0.0.1

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

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

      【讨论】: