我已设置Scrapyd以更好的方式管理Scrapy蜘蛛,并且它做得非常好。我只是怀疑如何保护它,因为我担心任何知道这是Scrapyd服务器的人都可以使用API来操纵scrapyd的工作。
我只需要一个外部IP就可以与Scrapyd API进行交互,其他任何系统都无法访问它。
如何保护服务器以便不是每个人都可以与之交互?
我在谷歌上找不到任何东西。对不起,如果这是一个愚蠢的问题,但我真的没能弄清楚。 感谢。
答案 0 :(得分:0)
这不是一个报废问题,这是一个服务器管理问题。您需要做的是从外部的ips关闭服务器上的scrapyd端口,除了您自己的端口。
答案 1 :(得分:0)
使用ubuntu上的nginx / htpasswd可以轻松完成,例如:
apt-get install nginx
apt-get install apache2-utils
1)将nginx配置为将请求从端口80代理到端口6800
server {
listen 80 default_server;
server_name _;
location / {
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_connect_timeout 300s;
proxy_send_timeout 300s;
proxy_read_timeout 300s;
proxy_pass http://this.is.your.ip:6800/;
auth_basic "Restricted Content";
auth_basic_user_file /etc/nginx/.htpasswd;
}
}
2)创建一个新用户/密码
htpasswd -c /etc/nginx/.htpasswd myuser
2b)重新加载
/etc/init.d/nginx restart
3)配置防火墙以放弃对端口6800的外部访问
ufw default deny incoming
ufw allow ssh
ufw default allow outgoing
ufw allow 80
ufw enable