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 のソートとページング (order by と limit) と既存の落とし穴

並べ替えクエリ (order by)電子商取引の場合: 今日完了したすべての注文を表示し、取引金額に...

ドラッグ効果を実現するための js オブジェクト指向メソッド

この記事では、ドラッグアンドドロップをJSオブジェクト指向で実装するための具体的なコードを参考までに...

Mybatis ファジークエリ実装方法

Mybatis ファジークエリ実装方法mybatis のリバース アシスタントは非常に使いやすく、通...

nginxプロキシsocket.ioサービスの落とし穴の詳細な説明

目次Nginx は 2 つの socket.io サーバーをプロキシします。 socket.ioの動...

Linux 上で Docker コンテナを作成、一覧表示、削除する方法の概要

1. Dockerコンテナを起動する以下のコマンドを使用して新しい Docker コンテナを起動しま...

クールなページング効果を実現するネイティブJS

この記事では、次のような効果を持つ JS ページング効果の例を紹介します。クールだと思いませんか? ...

Linux redis-Sentinel 設定の詳細

ダウンロードダウンロードアドレス: https://redis.io/download /usr/l...

JavaScriptオブジェクトをマージするさまざまな方法の詳細な説明

目次オブジェクトをマージするさまざまな方法(インターフェースを通じてデータを取得し、それをローカル ...

イメージのアップロードとダウンロードに docker をプロキシするためのプライベート ライブラリとして nexus を使用する

1. Nexusの設定1. Dockerプロキシを作成する外部ネットワーク ウェアハウスからローカル...

React Diff Principle の詳細な分析

目次差分アルゴリズムレイヤーごとの比較同じタイプのコンポーネントを比較する同じタイプの要素の比較子ノ...

Vue ミックスインの使用方法とオプションのマージの詳細な説明

目次1. コンポーネントでの使用2. オプションのマージ要約する1. コンポーネントでの使用Mixi...

.NETCore Dockerはコンテナ化とプライベートイメージリポジトリ管理を実装します

1. Dockerの紹介Docker は Linux オペレーティングシステムの一部の機能をベースに...

WeChatアプレットでSVGアイコンを使用する方法

SVG は、さまざまな利点があるため、近年広く使用されています。残念ながら、WeChat ミニプログ...

MySQL最適化ツール(推奨)

序文今日 GitHub を閲覧していたところ、SQL を最適化および書き換えるための sora とい...

IE6 で幅と高さがおかしいバグ

図に示すように: しかし、IE6で表示すると、right:1px:になります。 IE6 には、幅と高...