首页 > 解决方案 > 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重定向的。

标签: node.jsnginx

解决方案


推荐阅读