nginx前書きWebサイト用にサーバーを構成する場合、実装する必要がある一般的な条件付きアクションがいくつかあります。一部のファイルはユーザーのブラウザによって他のファイルよりも長くキャッシュされるか、Webサイトの一部は安全な接続(ユーザーのパスワードを必要とするものなど)を介してのみ許可されるべきですが、Webサイトの他の部分はt。別の単純で一般的な例は、古いWebページの代わりに新しいWebページが公開されたときに、すべての古いアドレスが正しい場所にリダイレクトされるようにすることです。これは、古いリンクとブックマークが機能しなくなることを意味し、Googleのキャッシュも保持するため便利です。Nginxのマップモジュールを使用すると、Nginxの構成ファイルに変数を作成できます。変数の値は条件付きです。他の変数の値に依存します。このガイドでは、Nginxのマップモジュールを使用して2つの例を実装する方法を見ていきます。古いウェブサイトのURLから新しいURLへのリダイレクトのリストを設定する方法と、ウェブサイトへのトラフィックを制御する国のホワイトリストを作成する方法です。前提条件このチュートリアルを実行するには、次のものが必要です。7サーバー(sudo非ルートユーザーを含む)。7にNginxをインストールする方法のチュートリアルに従って、サーバーにインストールされたNginx。手順1-サンプルWebページの作成とテスト最初に、新しく公開されたWebサイトを表すテストファイルを作成します。このファイルを使用して、構成をテストします。+」を作成しましょう。このファイルには、中身を説明するプレーンテキストのみが含まれます:ホーム。」で正しく配信されることを確認します。+」を指定する必要はありません。正確なファイル名が指定されていない場合、デフォルトでそのファイルが提供されるためです。*と言う単語が1つ表示されます。html」に存在しないファイルにアクセスしてみましょう。*になり、ページが存在しないことを意味します。+」が実際に存在し、削除された実際のウェブサイトのページであった場合、404を返すと、そのページへのすべてのリンクが壊れます。これらのリンクはGoogleによってインデックスが付けられているか、印刷または書き留められているか、他の手段で共有されている可能性があるため、これは理想的とは言えません。次のステップでは、マップモジュールを使用して、視聴者を新しい置換に自動的にリダイレクトすることにより、この古いアドレスが再び機能することを確認します。+」条件ステートメントを使用できます。このような構成は、条件のリストが長くなるにつれて、長期的に維持または拡張するのが容易ではありません。マップモジュールは、よりエレガントで簡潔なソリューションです。Nginxの変数値を条件のリストと比較し、一致に応じて新しい値を変数に関連付けることができます。この例では、リクエストされたURLを、新しいページにリダイレクトする古いページのリストと比較します。古い住所ごとに、新しい住所を関連付けます。マップモジュールはコアNginxモジュールです。使用するために個別にインストールする必要はありません。+`の簡単な紹介])またはお好みのテキストエディター。+`設定ブロックを見つけます。.2つの新しいセクションを追加します。+」ブロックの前に、もう1つはその内部に配置します。map`ブロックであり、mapモジュールを使用して古いURLと新しいURLの間のマッピングを定義します。+`ブロック内のセクションはリダイレクト自体です。+`変数の内容を受け取り、それを中括弧内の条件のリストと比較します。条件のリストの各項目には、2つのセクションがあります。一致する値と、一致する場合に変数に割り当てる新しい値です。一致しない場合、変更されません。ここでは、1つの条件のみを定義していますが、マップに必要な数の条件を定義できます。`変数の値が設定されているかどうかを確認します。`コマンドを使用して新しいウェブサイトにリダイレクトする必要があります。HTTPリダイレクトになるようにしました。古いアドレスは無効になり、オンラインに戻りません。ファイルを保存して閉じ、終了します。新しい構成を有効にするには、Nginxを再起動します。nginx新しい構成をテストするには、以前と同じリクエストを実行します。*エラーはありません。代わりに、ステップ1で作成したシンプルなホームページが表示されます。Nginxの応答Homeこれは、マップが適切に構成されており、マップにさらにエントリを追加することにより、それを使用してURLをリダイレクトできることを意味します。URLのリダイレクトは、mapモジュールの便利なアプリケーションの1つです。次のステップで検討するもう1つの方法は、訪問者の地理的位置に基づいてトラフィックをフィルタリングすることです。ステップ3-特定の国へのWebサイトアクセスの制限サーバーは、過剰な量の自動化された悪意のあるリクエストを受け取ることがあります。これは、DDoS攻撃、ウェブサイト管理パネルへのブルートフォースパスワードの試み、またはソフトウェアの既知の脆弱性を悪用してウェブサイトを攻撃し、それを使用してスパムを送信したり、サイトコンテンツを変更したりする可能性があります。このような自動化された攻撃は、さまざまな国のさまざまな分散サーバーから発生する可能性があり、ブロックすることは困難です。このような攻撃の影響を軽減する1つのソリューションは、Webサイトにアクセスできる国のホワイトリストを作成することです。これは完璧なソリューションではありませんが、訪問者の地理的位置に基づいてウェブサイトへのアクセスを制限することが賢明な選択であり、ウェブサイトの視聴者を制限しない状況では、このソリューションには高速でエラーが発生しにくいという利点があります。サーバーレベルでのフィルタリングは、Webサイトレベルでのフィルタリングよりも高速であり、すべてのリクエスト(画像などの静的ファイルを含む)もカバーします。この種のフィルタリングは、リクエストがWebサイトソフトウェアに到達することをまったく防ぎ、脆弱性の悪用を困難にします。地理的フィルタリングを利用するには、まず新しい構成ファイルを作成しましょう。/etc/nginx/conf.d/geoip.conf次の内容をファイルに貼り付けます。これにより、Nginxは、訪問者のIPアドレスとそれぞれの国との間のマッピングを含むGeoIPデータベースの場所を知ることができます。16.04がプリインストールされています。/usr/share/GeoIP/GeoIP.dat;次のステップは、必要なマップと制限の構成を作成することです。デフォルトのサーバーブロックNginx構成を開きます。+`設定ブロックを見つけます。これは、ステップ1と2の変更後、次のようになります。.2つの新しいセクションを追加します。+`ブロックの前に、もう1つは内部にあります。map`ブロックです。このブロックは、デフォルトのアクション(アクセス不可)とウェブサイトへのアクセスを許可された国コードのリストを定義します。+`の結果がそう言う場合、ウェブサイトへのアクセスを拒否します。.ファイルを保存して閉じ、終了します。ここでは、プレースホルダーとして「」と「」を使用しました。これらの変数を、ホワイトリストに登録する国の2文字の国コードに置き換えます。ISOのすべての国コードの完全な検索可能なリストを使用して検索できます。`変数は常に何かに設定されます。」に設定されています。