动态渲染页面爬取-Splash负载均衡配置
1 | 用 Splash做页面抓取时,如果爬取的量非常大,任务非常多,用一个Splash服务来处理的话,未 |
配置Splash服务
1 | 要搭建Splash负载均衡,首先要有多个Splash服务。假如这里在4 台远程主机的8050端口上都开启了 Splash服务,它们的服务地址分别为 41.159.27.223:8050、41.159.27.221:8050、 41.159.27.9:8050和41.159.117.119:8050,这4个服务完全一致,都是通过Docker的 Splash镜像开启的。访问其中任何一个服务时,都可以使用Splash服务。 |
配置负载均衡
1 | 接下来,可以选用任意一台带有公网IP的主机来配置负载均衡。首先,在这台主机上装好Nginx,然后修改Nginx的配置文件nginx.conf,添加如下内容: |
1 | 当然,我们也可以不指定配置,具体如下: |
1 | 另外,我们还可以指定权重,配置如下: |
1 | 最后,还有一种IP散列负载均衡,配置如下: |
1 | 我们可以根据不同的情形选用不同的配置,配置完成后重启一下Nginx服务: |
配置认证
1 | 现在Splash是可以公开访问的,如果不想让其公开访问,还可以配置认证,这仍然借助于Nginx。 |
1 | 这里使用的用户名和密码配置放置ft/etc/nginx/conf.d目录下,我们需要使用htpasswd命令创建。 |
测试
1 | 最后,我们可以用代码来测试一下负载均衡的配置,看看到底是不是每次请求会切换IP。利用http://httpbin.org/get测试即可,实现代码如下: |
1 | 这里URL中的splash字符串请自行替换成自己的Nginx服务器IP。 这里我修改了Hosts, 设置了splash为Nginx服务器IP |