クエリ文字列パラメーターに基づいて特定のファイルへのアクセスを制限する必要があります。負荷分散のために、他のいくつかのnginx Webサーバーの前にあるNGINXプロキシサーバーがあります。構成の変更を統合するために、プロキシ サーバー レベルでこのクエリ文字列パラメーターを適用することにしました。アップストリームに送信する必要があるため、リクエストが if にトラップされないため、セットアップが少し複雑になりました。
server {
listen 443;
# SSL Settings
server_name staging.xxxx.com;
location / {
proxy_pass http://webdav-cluster;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
}
# Unless the correct application token is passed in as a query parameter
# then deny access.
location ~ \/protected\/.*txt$ {
if ($arg_secret != abc) {
return 403;
}
proxy_pass http://webdav-cluster;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
}
}
これらの 4 つのプロキシ行を場所または変数に保存し、内部的に 1 行でそこにリダイレクトする方法はありますか? 異なる仮想ホストで同じ設定を使用することもあります。