node.js - Node.js API 与 Nginx:阻止 API 访问公众
问题描述
我正在使用带有 Nodejs 后端的 Nginx。我使用 Nodejs 来验证用户和 api 调用。目前我的 Nginx 配置中有以下内容:
location /api {
proxy_pass http://localhost:5000/api;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_redirect off;
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;
}
但是,这允许任何人/api
直接访问。有没有办法配置它,使用户不能直接访问/api
?
更新
我尝试添加:
allow 127.0.0.1; deny all;
到 nginx 配置,但是,这也阻止了 nginx 获取资源。也就是说,用户无法再登录或从 api 获取资源。
我添加了一个中间件来表达,它总是接收127.0.0.1
(localhost),req.ip
所以我不能在nodejs端做任何事情来防止这种情况,因为所有请求都是从nginx重定向的。
解决方案
推荐阅读
- java - 单独的线程不会运行,阻塞主 UI
- c - Makefile:如何将所有 .o 文件放在一个目录中
- actionscript - ActionScript 3 使用带有对象 y 值的 sortOn
- c - C OpenMP 代码在 cygwin 上的行为出乎意料,但在 Linux 上与预期的一样
- swift - 如何在 Swift 中指定要避免的范围
- java - Maven:未解决 RestAssured 依赖项
- vba - 未调用 VBA PowerPoint 鼠标悬停技术
- bash - Applescript 或 Shell 脚本从电子邮件中提取文本和日期并制作日历事件
- python - 雅虎财务量到数据框
- swift - Swift - 为循环获取多个一对多值 - 转换为不相关的类型