我在数字海洋小滴上运行SailsJS(带有nginx的MEAN Stack)。我的所有请求都映射到我的Angular前端,但 / api 上的请求映射到端口1337 上的 proxy_pass (Sails运行时) 。这个程序工作正常。
现在我想限制对我的API的访问权限,只允许来自我的前端的请求。我已经尝试在我的nginx配置中拒绝/允许,但这会阻止用户请求本身。我尝试了几个答案,比如this,但他们没有成功。
将我的Sails API访问限制为localhost的推荐方法是什么?我想在我的Droplet上运行多个应用程序,并使用Sails作为我的API,只有我的Droplet中的应用程序才能访问它。
我的nginx配置:
upstream sails_server {
server 127.0.0.1:1337;
keepalive 64;
}
server {
server_name domain.com;
index index.html;
location / {
root /opt/domain/build;
try_files $uri $uri/ /index.html;
}
location /api {
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
client_max_body_size 500M;
}
}
- 提前致谢!
答案 0 :(得分:0)
我认为你不能这样做因为你的客户端有角度运行,所以你需要从所有用户那里获得IP。您可以使用与trustes proxys一起使用的简单方法
var ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress
或使用更复杂和受信任的link