Nginxの組み込み変数とifステートメント



Nginx Built Variables



まず、次のように、一般的に使用されるいくつかの単純なNginx組み込み変数を紹介しましょう。

パラメータ 意味
$ host ホスト要求ヘッダー(ホスト)フィールド。ホストヘッダー要求が使用できないか空の場合、サーバー名が要求を処理していました。
$ http_HEADER HTTPリクエストヘッダーとして、HEADERは小文字のHTTPコンテンツリクエスト、-_変更(下線付きのダッシュを変更)、
例:$ http_user_agent(値Uaer-Agent)
$ remote_addr クライアントのIPアドレス
$ remote_port カスタマーポート
$ request_method この変数は、クライアントによって要求されたアクションであり、通常はGETまたはPOSTです。
$ request_uri この変数は、元のクライアント要求URIパラメーターを含む数と同じです。
$スキーム httpやhttpsなどの使用されるプロトコル
$ server_name サーバーの名前
$ server_port リクエストがサーバーのポート番号に到達しました
$ server_protocol プロトコルリクエスト、通常はHTTP /1.0またはHTTP / 1.1
$ uri 現在のリクエストURI(リクエストパラメータなしのパラメータは$ argsにあります)

実際、私たちは以前に持っています nginx.confプロファイルプロファイル 、いくつかの組み込み変数を使用する場合のログファイル形式を構成します
画像






次に、Nginxifステートメントの使用法を見てみましょう。

ステートメント 意味
=!= そして、変数文字列が等しいかどうかを比較します
〜〜 * そして、これが正規表現に含まれている場合、可変正規表現マッチング
-f!-f ファイルが存在するかどうかを確認します
-d!-d ディレクトリが存在するかどうかを確認します
-e!-e ファイル、ディレクトリ、の存在へのシンボリックリンクをチェックする
-x!-x ファイル実行可能ファイルかどうかを確認します

これは通常としてよく使用されます:



  • 静的リソース:location ~* /.*.(htm|js|css)$
  • ドメイン名の確認:if($http_origin ~ http://(.*).kami.com)
  • ブラウザチェック:if($http_user_agent ~ Firefox)

次に、次のように、単純なifステートメントのいくつかの例を見ていきます。
画像
たとえば、前にSETを導入し、設定値を設定してから、直接リターン501かどうかを判断し、構成を確認します。
画像
間違いを見つけたので、構成時に注意を払う必要があります。
画像
画像



たとえば、アクセスしたURLパスを判断できるため、次のように.phpおよび.jspページへのアクセスを許可しません。
画像

.phpまたは.jspへのすべてのアクセスをブロックできるように
画像



また、-f ifステートメント/-!を見てみましょう。 F、-d /-! Dは、ファイルまたはディレクトリが存在するかどうかを判別するために使用されます。
画像
画像



最後に、Firefoxブラウザは以下へのアクセスを許可しないため、ブラウザが設定されていることに取り組む方法を見ていきます。
画像
画像
他のブラウザはアクセスできますが
画像


最後の説明は、ここにあるのは、いくつかの一般的なNginx組み込み変数の使用であり、ifステートメントが示す場合、私たちの場所でも使用できるということです。