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

関連情報