0

私はNginxを初めて使用するので、鈍い場合はご容赦ください。nginx プロキシの背後にあるサービスがあり、auth_basic を使用して、現在誰もアクセスできないようにしています。Angular アプリがこのサービスにアクセスできるようにしたいのですが、特定のリクエスト メソッド (GET、POST、DEL、OPTIONS) を実行できるユーザーを制御したいと考えています。ログイン/パスワードを JS にハードコーディングしたくない (duh)。これを行う方法を理解できる唯一の方法は、次のように言うことです。

if ($request_method = OPTIONS)
{ 
        proxy_pass_header Access-Control-Allow-Origin *;
        proxy_pass_header Access-Control-Allow_Methods GET, OPTIONS;
        etc...
}

この時点で、誰からの GET および OPTIONS リクエストも許可しますが、POST、DEL は特定の場所 (内部、または信頼できる IP など) からのみに制限したいと考えています。現在、そのブロックに proxy_pass_header を入れると、ディレクティブが許可されていないと表示されます。そのようなifブロック内でadd_headerを使用する他の例を見たので、なぜそれが機能しないのか混乱しています。

まず第一に、これは物事を行うための最良の方法ですか?そうでない場合、誰か別の推奨事項はありますか? それが物事を処理する最良の方法である場合、ここで何が間違っていますか?

どんな助けでも大歓迎です。nginx のドキュメントは非常にわかりにくいと思います。

4

1 に答える 1