nginx使用geo模块进行接口访问限制
2024-10-20 04:04:50
背景需求: 对api接口 /api/inner 进行ip访问限制
# ip白名单
geo $ip_list {
default 0;
111.111.111.111 1;
} server {
listen 80;
listen 443 ssl;
server_name www.test.com;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/https_mnewapi2_error.log; ssl_certificate "/etc/nginx/zhengshu/fullchain.pem";
ssl_certificate_key "/etc/nginx/zhengshu/privkey.pem";
ssl_session_cache shared:SSL:1m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on; location /api/inner/ {
proxy_set_header Host $host;
proxy_set_header x-real-ip $remote_addr;
proxy_set_header x-forwarded-for $remote_addr;
# 方式1,判断ip
#if ($remote_addr ~* "111.111.111.111") {
# proxy_pass http://127.0.0.1:8080;
# break;
#}
# 方式2,使用geo模块
if ($ip_list) {
proxy_pass http://127.0.0.1:8080;
break;
}
return 403;
} location / {
proxy_set_header Host $host;
proxy_set_header x-real-ip $remote_addr;
proxy_set_header x-forwarded-for $remote_addr;
proxy_pass http://127.0.0.1:8080;
}
}
最新文章
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(43)-工作流设计-字段分类设计
- 使用roslyn代替MSBuild完成解决方案编译
- Target runtime com.genuitec.runtime.generic.jee60 is not defined
- 【MySQL】排序原理与案例分析
- Web性能优化-合并js与css,减少请求
- 【转】MSSQLServer数据库事务锁机制分析
- 各大网站CSS代码初始化集合
- /proc/sys/net/ipv4/
- Struts2 Package
- java特殊运算符(转)
- SQL声明大全
- GIT入门笔记(17)- 创建分支dev_lsq, 提交到代码
- golang命令行库cobra的使用
- Java_03选择结构
- 把旧系统迁移到.Net Core 2.0 日记(4) - 使用EF+Mysql
- map的put和putIfAbsent使用
- [Git]Git的常用命令
- python 神经网络实例
- 160328、rabbitMQ集群部署示例
- 在JSP中使用formatNumber控制要显示的小数位数