Nginx_geo モジュールを使用して CDN スケジュールを設定する方法

Nginx_geo モジュールを使用して CDN スケジュールを設定する方法

NginxのGeoモジュールの紹介

geo ディレクティブは、ngx_http_geo_module モジュールによって提供されます。デフォルトでは、--without-http_geo_module が指定されていない限り、nginx はこのモジュールをロードします。

ngx_http_geo_module モジュールを使用すると、クライアントの IP アドレスに応じて値が異なる変数を作成できます。使い方は次のとおりです:

geo ディレクティブの構文: geo [$address] $variable { ... }
デフォルト値: -
構成セクション: http

指定された変数からクライアントの IP アドレスを取得する方法を定義します。デフォルトでは、nginx は $remote_addr 変数からクライアント IP アドレスを取得しますが、他の変数から取得することもできます。

/usr/local/nginx/conf/nginx.confファイルに次の設定を追加します。geo $geo {
    範囲; #アドレスをアドレス セグメントの形式で使用します。このパラメータは最初に配置する必要があります default dn;
    ip_geo.conf をインクルードします。
  }

    アップストリーム wuhan.server {
      サーバー 192.168.155.98:8081;
    }

    アップストリーム上海サーバー{
      サーバー 192.168.155.98:8082;
    }

    アップストリーム shenzhen.server {
      サーバー 192.168.155.98:8083;
    }

    アップストリームdn.server {
      サーバー 192.168.155.98:8084;
    }

 サーバー{
    聞く 80;
    サーバー名 192.168.155.98 jiaoyu.media.cloudp.cc;
      ルートhtml;
      インデックス index.html index.htm;
    場所 ~* \.xml$ {
      ルート /data/video;
    }
    位置 / {
      proxy_redirect オフ;
      proxy_set_header ホスト $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For 
      プロキシサーバにXを転送します。
      proxy_pass http://$geo.server$request_uri;
    }
  }

  サーバー{
    聞く 8081;
    サーバー名 192.168.155.98;
    位置 / {
      ^ $scheme://192.168.155.106$request_uri? を永久に書き換えます。
    }
  }

  サーバー{
    聞く 8082;
    サーバー名 192.168.155.98;
    位置 / {
        ^ $scheme://192.168.155.107$request_uri? を永久に書き換えます。
    }
  }

サーバー{
    聞く 8083;
    サーバー名 192.168.155.98;
    位置 / {
        ^ $scheme://192.168.155.109$request_uri? を永久に書き換えます。
    }
  }

  サーバー{
    聞く 8084;
    サーバー名 192.168.155.98;
    位置 / {
        ^ $scheme://jiaoyu.dn.cloudp.cc$request_uri? を永久に書き換えます。
    }
}

IP 領域を分割するには、/usr/local/nginx/conf/ の下に ip_geo.conf ファイルを追加します。分割時​​に IP が重複しないように注意してください。重複すると、「重複」エラーが報告されます。

vim /usr/local/nginx/conf/ip_geo.conf

192.168.128.6-192.168.128.10 武漢;
192.168.128.11-192.168.128.15 上海;
192.168.128.16-192.168.128.20 深セン;

IP アドレスを 10.2.0.0/16 wuhan の形式でセグメント化することもできるため、nginx.conf で範囲ディレクティブを使用して定義する必要はありません。

Nginx_geo モジュールを使用して CDN スケジューリングを実装する上記の設定方法は、エディターが皆さんと共有する内容のすべてです。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Nginx の geo モジュールの詳細な説明と、それを使用して負荷分散を構成する例
  • 地域負荷分散を実現する Nginx geoip モジュール
  • Nginxサーバーにおけるマップモジュールの設定と使用方法の詳細な説明

<<:  mysql 5.7.23 winx64 解凍バージョンのインストールチュートリアル

>>:  JSで実施された機雷掃海プロジェクトの概要

推薦する

MYSQL(電話番号、IDカード)データ非感応化の実装

1. データ感度低下の説明日常の開発ニーズでは、データの感度低下が頻繁に発生します。たとえば、ID ...

vue keep-alive の簡単な概要

1. 機能主にコンポーネントの状態を保持したり、再レンダリングを回避したりするために使用されます。 ...

HTML チュートリアル: よく使われる HTML タグのコレクション (4)

関連記事:初心者が学ぶ HTML タグ (3)導入された HTML タグは、必ずしも XHTML 仕...

フォームアクションとonSubmitの例

まず、action はフォームの属性です。HTML5 では必須の属性値として定義されています。onS...

便利でシンプルなMySQL関数10個

関数0. 現在の時刻を表示するコマンド: select now()。機能: 現在の時刻を表示します。...

MySQL でのインデックスの追加と削除に関連する操作

目次1. インデックスの役割2. インデックスの作成と削除(1)ALTER TABLE文を使用して、...

MySQL の昇順および降順データソートの実装

データの昇順、降順ソート1. フィールド名による単一フィールドのソート順機能:どのフィールドを基準に...

MySQL Undo ログと Redo ログの概要

目次元に戻すログUNDOログの生成と破棄UNDOログの保存元に戻すログ機能トランザクションの原子性の...

CocosCreator Huarongdaoデジタルパズルの詳しい説明

目次序文文章1. パネル2. 華容島ソリューション3. コード4. 注記序文華容路とは何ですか? 誰...

SQL文の最適化の一般的な手順の詳細な説明

序文この記事では主に、SQL ステートメントの最適化の一般的な手順について説明します。これは、参考と...

Win7 64 ビット版に MySQL 5.7 をダウンロードしてインストールする際によくある問題の概要

1. 公式ウェブサイトからMySQLをダウンロードします。 これが私たちが探しているものです、win...

Vue3 はメッセージコンポーネントの例を実装します

目次コンポーネント設計最終的なコンポーネントAPIの定義コンポーネント構造の定義テンプレートとスタイ...

Tencent Cloud Server Tomcat ポートにアクセスできない場合の解決策

最近、Tencent Cloudを使用してサーバーを設定しました。使用中に、tomcatポートにアク...

MySQL カーソルの原理と使用例の分析

この記事では、例を使用して MySQL カーソルの原理と使用方法を説明します。ご参考までに、詳細は以...

html 内の絶対パス URL と相対パス URL、サブディレクトリ、親ディレクトリ、ルート ディレクトリ

絶対 URL は、インターネット上の特定のファイルに必要なすべてのコンテンツを表すために使用されます...