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ストレージ時間タイプの選択に関する問題の説明

MySQL では、datetime 型は通常、時間を保存するために使用されますが、現在では多くのシス...

Zabbix は MySQL インスタンス メソッドを監視します

1. 監視計画監視項目を作成する前に、何を監視するのか、どのように監視するのか、監視データをどのよう...

vue プロジェクトのデプロイと Nginx でのプロキシ設定の問題の分析

1. nginxをインストールして起動する # nginxをインストールする sudo apt-ge...

Dockerコンテナ監視とログ管理の実装プロセス分析

Docker の導入規模が大きくなると、コンテナを監視する必要があります。一般的に、Docker に...

CSS で適応型ディバイダーを巧みに実装する N 通りの方法

分割線はウェブページでよく使われるデザインです。例えば、Zhihuのその他の回答をご覧ください。 こ...

Docker の NFS-Ganesha イメージを使用して NFS サーバーを構築する詳細なプロセス

目次1. NFS-Ganeshaの紹介2. NFS-Ganeshaの設定3. NFS-Ganesha...

CSS のサイズと幅と高さのブラウザ解釈の違いに対する解決策

まずは例を見てみましょうコードをコピーコードは次のとおりです。 <!DOCTYPE html ...

Nginx ロケーション ディレクティブ URI マッチング ルールの詳細な概要

1. はじめにロケーション命令は、http モジュールのコア構成です。事前に定義された URL マッ...

VueプロジェクトでReactを書く方法の詳細

jsx/tsxファイルを直接作成できます今回のプロジェクト構成は以下のとおりです。 vueファイルで...

MySQLにインデックスを追加しても効果がないいくつかの状況について簡単に説明します。

インデックスを追加すると、クエリの効率が向上します。インデックスを追加するということは、ドキュメント...

フレームセットの共通プロパティ(フレームとウィンドウの分割)

フレームとは、Web ページ画面を複数のフレームに分割したもの(複数の Web ページという形で表示...

Vue で $props、$attrs、$listeners を使用する方法の詳細な説明

目次背景1. 文書の説明2. 特定の用途結論背景ここで、状況について説明しましょう。親コンポーネント...

Linux での chmod コマンドの使用方法の詳細な説明

chmod コマンド構文chmod コマンドを使用する場合の正しい構文は次のとおりです。 chmod...

vueプロジェクトのマルチ環境設定(.env)の実装

目次マルチ環境構成とは何ですか? また、なぜそれが必要なのですか? .env ファイルはどこで設定さ...

よく使うLinuxコマンドのまとめ

私は2年間運用保守に携わり、多くのコマンドを使用しました。特定のLinuxコマンドを習得すると、どれ...