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;
}

相關內容