阿里云ALB可编程脚本示例
官方文档
https://help.aliyun.com/zh/slb/application-load-balancer/user-guide/programmable-script/?spm=a2c4g.11186623.help-menu-27537.d_2_8.5b8a545dHf8mFR&scm=20140722.H_328597._.OR_help-T_cn~zh-V_1


需求背景
项目有两个端,分别是app端和web端,其中web端需要限制ip段范围,而app端必须对公网开放,因此无法使用ALB中的访问控制,无法满足现有需求。
因此觉得写一个可编程脚本,实现逻辑如下:
1.如果请求headers中有APP_PWD,代表是访问APP端的流量,则需要验证密码是否符合预期,如果符合则转发流量至后端
2.如果请求headers中没有APP_PWD,代表是访问Web端的流量,则需要验证ip是否在ip范围段内,如符合则转发流量至后端
3.不满足以上条件的情况,直接返回403页面
if $http_APP_PWD {if ne($http_BOSCH_RBHP_APP_PWD, 'xsasxascLw7u') {exit(403)}
}if not($http_APP_PWD) {
# 这里写具体的公网IP段,cidr自己想办法转换成正则表达式的形式,才能完成匹配if not(match_re($remote_addr, '^(127\.39\..*|127\.40\..*|)')) {exit(403)}
}
配置完成后自己去页面上试验下,访问应该能达到预期效果
