阿里云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)
    }
}

配置完成后自己去页面上试验下,访问应该能达到预期效果

相关推荐
Genie cloud20 小时前
1Panel SSL证书申请完整教程
服务器·网络协议·云计算·ssl
ha_lydms1 天前
DataWorks离线同步 OSS文件
大数据·阿里云·oss·dataworks·maxcompute·数据同步·离线计算
JiL 奥1 天前
Ubuntu系统安装AWS SAM
云计算·aws
liyuanchao_blog1 天前
linuxptp适配记录
linux·云计算
YongCheng_Liang1 天前
从零开始学虚拟化:性能优化全指南(资源分配 + 存储网络 + 监控)
运维·云计算
YongCheng_Liang1 天前
从零开始学虚拟化:高可用与灾备技术全解析(集群 + 备份 + 异地灾备)
运维·云计算
珠海西格2 天前
“主动预防” vs “事后补救”:分布式光伏防逆流技术的代际革命,西格电力给出标准答案
大数据·运维·服务器·分布式·云计算·能源
xianyinsuifeng2 天前
RAG + Code Analysis 的标准路线
数据仓库·自动化·云计算·原型模式·aws
Genie cloud2 天前
在 Mac 上使用 Docker 安装宝塔并部署 LNMP 环境
macos·docker·容器·云计算
php_kevlin2 天前
阿里云AI接口接口
阿里云·云计算