news 2026/7/22 1:22:53

Nginx通过配置请求参数限制接口地址访问方案

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Nginx通过配置请求参数限制接口地址访问方案

1. 访问需求

请求地址如下:
https://转发域名或ip:63333/api/subscribe/proxy/lecshi?accesskey=lmzfproxyforward_leshi&env=cloud-proxy-dev
https://转发域名或ip:63333/api/subscribe/proxy/lecshi?accesskey=lmzfproxyforward_leshi&env=cloud-proxy-test


nginx代理层要检查请求参数accesskey是以开头lmzfproxyforward_,且要有env标识,proxy_pass才转发给backend。
如果env是cloud-proxy-dev就是https://cloud-proxy-dev.lmzf.com//interface/imou
如果env是cloud-proxy-test就是https://cloud-proxy-test.lmzf.com/interface/imou

2. Nginx配置

# 在http块或server块中添加 resolver 8.8.8.8 114.114.114.114 223.5.5.5 valid=30s; resolver_timeout 5s; map $arg_env $backend_url { cloud-proxy-dev "https://cloud-proxy-dev.lmzf.com/interface/imou/"; cloud-proxy-test "https://cloud-proxy-test.lmzf.com/interface/imou/"; default ""; } map $arg_env $backend_host { cloud-proxy-dev "cloud-proxy-dev.lmzf.com"; cloud-proxy-test "cloud-proxy-test.lmzf.com"; default ""; } map $arg_accesskey $accesskey_valid { "~^lmzfproxyforward_" 1; default 0; } server { listen 63333; # 如果需要HTTPS支持 # listen 63333 ssl; # ssl_certificate /etc/nginx/ssl/lmzf.com.pem; # ssl_certificate_key /etc/nginx/ssl/lmzf.com.key; # DNS解析器(重要!) resolver 8.8.8.8 114.114.114.114 valid=30s; resolver_timeout 5s; location /api/subscribe/proxy/leshi { if ($args ~* "(.*)&(.*)") { set $args $1&$2; rewrite ^ /api/subscribe/proxy/leshi?$args break; } # 参数检查... if ($arg_accesskey = "") { return 403 "Missing accesskey"; } if ($accesskey_valid = 0) { return 403 "Invalid accesskey format"; } if ($arg_env = "") { return 403 "Missing env parameter"; } if ($backend_url = "") { return 403 "Invalid env value"; } # 设置正确的代理头 proxy_set_header Host $backend_host; # 使用后端主机名 proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # 对于HTTPS后端,可能需要这些设置 proxy_ssl_server_name on; proxy_ssl_name $backend_host; # 如果后端是自签名证书,可以关闭验证(测试环境) proxy_ssl_verify off; # 代理到后端 proxy_pass $backend_url; # 添加一些调试头 add_header X-Backend-URL $backend_url; add_header X-Backend-Host $backend_host; } location / { return 403; } access_log /var/log/proxy_access.log; error_log /var/log/proxy_error.log; }

3. 测试验证

3.1 直接访问转发域名

[root@monitor conf.d]# curl https://cloud-proxy-dev.lmzf.com/interface/imou/ {"code":1099000001,"msg":"internal server error!","data":null}

3.2 访问代理地址

[root@monitor conf.d]# curl "http://服务器IP:63333/api/subscribe/proxy/leshi?accesskey=lmzfproxyforward_leshi&env=cloud-proxy-dev" {"code":1099000001,"msg":"internal server error!","data":null}

访问结果一致,配置成功。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/20 18:48:40

抖音评论数据分析神器:三步搞定海量用户反馈收集

抖音评论数据分析神器:三步搞定海量用户反馈收集 【免费下载链接】TikTokCommentScraper 项目地址: https://gitcode.com/gh_mirrors/ti/TikTokCommentScraper 还在为分析抖音视频评论而烦恼吗?这款工具将彻底改变你的数据采集方式。无论你是内容…

作者头像 李华
网站建设 2026/7/20 4:39:27

m3u8下载器:5分钟掌握流媒体视频下载的完整指南

m3u8下载器:5分钟掌握流媒体视频下载的完整指南 【免费下载链接】m3u8-downloader m3u8 视频在线提取工具 流媒体下载 m3u8下载 桌面客户端 windows mac 项目地址: https://gitcode.com/gh_mirrors/m3u8/m3u8-downloader 还在为无法保存在线视频而烦恼&#…

作者头像 李华
网站建设 2026/7/20 21:02:53

精准把控外协环节,进销存软件让生产更顺畅

在制造业的生产链条中,工序外协早已成为企业整合资源、缓解产能压力的重要选择。无论是面对订单激增时的产能缺口,还是特殊工艺的技术壁垒,将部分工序委托给专业外协厂商,都能帮助企业降低运营成本、提升生产灵活性。但随之而来的…

作者头像 李华
网站建设 2026/7/8 8:29:19

VMware macOS解锁工具2025最新安装教程:从痛点分析到完美解决方案

VMware macOS解锁工具2025最新安装教程:从痛点分析到完美解决方案 【免费下载链接】unlocker 项目地址: https://gitcode.com/gh_mirrors/unlo/unlocker 想在Windows或Linux系统上体验macOS的魅力吗?VMware macOS Unlocker正是您需要的终极解决方…

作者头像 李华
网站建设 2026/7/20 16:03:16

解锁C++中文分词:CppJieba实战应用全解析

解锁C中文分词:CppJieba实战应用全解析 【免费下载链接】cppjieba "结巴"中文分词的C版本 项目地址: https://gitcode.com/gh_mirrors/cp/cppjieba 在当今数据驱动的时代,中文文本处理已成为众多应用的核心需求。CppJieba作为一款高性能…

作者头像 李华