Я использую 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.