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で実施された機雷掃海プロジェクトの概要

推薦する

Vue が Bibibili のホームページを模倣する際の問題

エンジニアリング構造プロジェクトは2つの部分に分かれています。bilibili-apiはAPIインタ...

nginx を使用した負荷分散モジュールの解釈

目次負荷分散に nginx を使用するための 2 つのモジュール:アップストリームはロードノードプー...

CentOS 7 に Docker 1.8 をインストールする詳細な手順

Docker は、次の CentOS バージョンでの実行をサポートしています。 • CentOS 7...

Vue検証コードコンポーネントの使い方の詳しい説明

この記事の例では、vue検証コードコンポーネントで使用される具体的な実装コードを参考までに共有してい...

CocosCreatorメッセージ配信メカニズムの詳細な説明

概要この記事は、ゲームビジネスアーキテクチャに関連するコンテンツの紹介から始まります。ゲームビジネス...

優れたウェブフロントエンドデザインの指標

Web ページのアクセシビリティは、フロントエンドでのみ評価および実装できるもののようです。ユーザビ...

CentOS 7 で Python を 3.6.6 にアップグレードした後に発生する yum エラー問題の解決方法の概要

最近、テスト サーバーのオペレーティング システムを Cent0S 7.5 にアップグレードし、Py...

MySQLクエリ最適化プロセスを理解する

目次パーサーとプリプロセッサクエリオプティマイザーMySQL クエリの最適化には、解析、前処理、最適...

CentOS8 で MySQL 8.0 をインストールしてデプロイする方法

MySQL 8 の公式バージョン 8.0.11 がリリースされました。公式発表によると、MySQL ...

Firefoxでリンクをクリックしたときに点線の枠線を削除する方法

今日、ブラウザの互換性の問題にいくつか遭遇しました。そのうちの 1 つは奇妙に感じました。Firef...

MySQLデッドロック問題の詳細な分析

序文私たちのビジネスがまだ初期段階にあり、同時実行の度合いが比較的低い場合、数年間はデッドロックの問...

JavaScript 配列と非配列オブジェクトのディープ クローンとシャロー クローンの原則の詳細な説明

目次シャロークローニングとディープクローニングとは何ですか? 1. アレイのクローンを作成する1.1...

ECMAScript のイテレータの詳細な説明

目次序文以前のバージョンイテレータパターンイテレータファクトリ関数イテレータプロトコル最後に序文多く...

MySQLデータテーブルの基本操作:テーブル構造の操作、フィールド操作例の分析

この記事では、テーブル構造操作やフィールド操作など、MySQL データ テーブルの基本的な操作につい...

Navicat for MySQL 11 登録コード\アクティベーションコードの概要

おすすめの読み物: Navicat12.1シリーズのクラッキングとアクティベーションのチュートリアル...