Splash 负载均衡配置

1.配置 splash 服务

假设有多台服务器在8050端口配置了 splash 服务,都是通过 docker 的 splash 开启,都可以使用服务。

2.配置负载均衡

接下来,可以选用任意一台带有公网 IP 的主机来配置负载均 首先,在这台主机上装好 Nginx,
然后修改 Nginx 的配置文件 nginx.conf,添加如下内容:
http {
    upstream splash {
# least_conn 代表最少链接负载均衡,它适合处理请求处理时间长短不一造成服务器过载的情况
# ip_hash 服务器根据请求客户端的 IP 地址进行散列计算,确保使用同一个服务器响应请求,这种
# 策略适合有状态的服务,比如用户登录后访问某个页面的情形
# server 119.45.0.45:8050; 可以指定权重 server 119.45.0.45:8050 weight=4;
            least_conn;
            server 119.45.0.45:8050;
            server 167.179.88.120:8050;
        }
    server {
            listen 8050;
            location / {
                proxy_pass http://splash;
            }
        }
}

3.配置认证

现在 Splash 是可以公开访问的,如果不想让其公开访问,还可以配置认证,这仍然借助于 Nginx
可以在 server 的 location 字段中添加 auth_basic 和 auth_basic_user_file 字段,具体配置如下:
http {
    upstream splash {
            least_conn;
            server 119.45.0.45:8050;
            server 167.179.88.120:8050;
        }
    server {
            listen 8050;
            location / {
                proxy_pass http://splash;
                auth_basic "Restricted";
                auth_basic_user_file /etc/nginx/conf.d/.htpasswd;
            }
        }
}
  这里使用的用户名和密码配置放置在 /etc/nginx/conf.d 目录下,我们需要使用 htpasswd 命令创建
例如,创建一个用户名为 admin 的文件,相关命令如下: 
htpasswd -c .htpasswd admin
接下来就会提示我们输入密码,输入两次之后,就会生成密码文件,其内容如下:
cat .htpasswd
admin:SZBxQrorCqwbc
配置完成后,重启 Nginx 服务:
sudo nginx -s reload

4.测试

import requests
from urllib.parse import quote
import re

lua = '''
function main(splash, args)
  local treat = require("treat")
  local response = splash:http_get("http://httpbin.org/get")
  return treat.as_string(response.body)
end
'''


url = 'http://127.0.0.1:8050/execute?lua_source=' + quote(lua)
response = requests.get(url)
// 如果配置了密码  response = requests.get(url, auth=('admin', 'admin'))
ip = re.search('(\d+\.\d+\.\d+\.\d+)', response.text).group(1)
print(ip)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值