Nginx 仅允许特定的 API 路径

Nginx 仅允许特定的 API 路径

我对 Nginx 很陌生,我在 Nginx 中有以下配置

server {
location /api {

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://127.0.0.1:3000;
        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;
    }
}

因此现在假设如果用户访问hostname/api/{{anything}}应该允许他们访问 但用户尝试访问hostname/api/admin它应该拒绝他们,那么我该如何实现这一点?

谢谢

答案1

您可以像这样在配置中指定路径:请参阅相关文档这里

 <Location /api/*>
    Order Allow,Deny
    Allow from all
  </Location>
  <Location /api/admin>
    Order Allow,Deny
    Deny from all
  </Location>

编辑:为 apache 提供了解决方案,但需要 nginx。地点指令也存在于 nginx 中:

location /api/* {
    allow all;
}

location /api/admin {
    deny all;
}

相关内容