2013-02-19 10 views
7

クエリ文字列パラメータに基づいて特定のファイルへのアクセスを制限する必要があります。私は負荷分散のためにいくつかの他のnginx Webサーバーの前に座っているNGINXプロキシサーバーを持っています。私は構成の変更を統合するために、このクエリ文字列パラメータをプロキシサーバーレベルで実施することに決めました。アップストリームに送信する必要があるため、要求がifにトラップされないため、これはセットアップに少し複雑です。複数の場所でNGINXプロキシ設定を再利用する方法

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つのプロキシ回線を格納する方法があり、その後、内部一行とそれにリダイレクト?私は、異なる仮想ホストで同じ設定を使用することもできます。 http://nginx.org/r/include

+0

OP、あなたがやって何に終わるんでした: – Mahn

答えて

2

この場合、あなたは includeディレクティブを使用する必要がありますか?私はこのことについても興味があります。
+4

技術的には正しいですが、小さなもののためにいくつかのファイルに分割することなくそれを行うことができればうれしいです。 – Mahn

+0

次に、お気に入りのテンプレートエンジンを使用して設定を生成します。それは 'bash'でもある可能性があります。 – VBart

関連する問題