Node.js API с Nginx: заблокировать доступ API к общественности - PullRequest
0 голосов
/ 05 августа 2020

Я использую Nginx с Nodejs серверной частью. Я использую 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.

Я добавил промежуточное ПО в express, и он всегда получает 127.0.0.1 (localhost) как req.ip, поэтому я не могу сделайте что-нибудь на стороне nodejs, чтобы предотвратить это, потому что все запросы перенаправляются с nginx.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...