1. Nginx の紹介1. Nginx とは何ですか?
2. Nginx を使用する理由今日のインターネットの急速な発展により、シングルポイント サーバーでは、数万、あるいは数十万のユーザーからの継続的なアクセスをサポートできなくなっています。たとえば、理想的な条件下では、Tomcat サーバーは約 2,000 件の同時リクエストしか処理できません。この問題を解決するには、負荷分散のために複数の Tomcat サーバーが必要です。 では、負荷分散はどのように実現すればよいのでしょうか? Nginx はソリューションの 1 つです。ユーザーが Web サイトにアクセスすると、Nginx はアクセス要求をインターセプトし、ポーリングを通じてさまざまなサーバーに均等に分散します。 さらに、Nginx には ip_hash 戦略があり、ユーザーの実際の IP を取得し、ハッシュ値を計算してサーバーを選択できます。これも優れた負荷分散方法です。 したがって、Nginx を習得することは、Web 開発の学習過程において不可欠な部分となっています。 3. フォワードプロキシとは何ですか?フォワード プロキシとは、クライアントが最初にプロキシ サーバーに要求を送信し、次にプロキシ サーバーがその要求をサーバーに転送することを意味します。私たちがよく使うVPNはプロキシサーバーです。海外のウェブサイトに接続するには、クライアントが外部ネットワークに接続できるサーバーをプロキシとして利用する必要があり、クライアントはプロキシサーバーに接続することができます。 4. リバースプロキシとは何ですか?リバース プロキシはフォワード プロキシとは異なります。フォワード プロキシはクライアントのプロキシとして機能し、リバース プロキシはサーバーのプロキシとして機能します。複数のサーバーが分散されている場合、クライアントが IP アドレスを通じて同じ Web サイトにアクセスできるようにするには、リバース プロキシが必要です。 リバース プロキシの動作メカニズムを理解したら、Nginx の学習を開始できます。 2. LinuxでのNginxのインストールNginx は Web サーバーで広く使用されているため、このチュートリアルではデモとして Centos サーバーのバージョン 7.4 を選択します。 1. ダウンロード公式ダウンロード ページ (http://nginx.org/en/download.html) にアクセスし、安定バージョンを選択してダウンロードし、サーバーにアップロードします。 2. インストールtarパッケージをサーバーにアップロードした後、現在のディレクトリに解凍します。 tar -zxvf nginx-1.18.0.tar.gz -C ./ 解凍したディレクトリに入り、configureスクリプトを実行します。 nginx-1.18.0/をインストールします ./configure makeコマンドを使用してインストールする 作成 && インストール インストールが完了したら、whereis コマンドを使用して Nginx のインストール場所を見つけます (デフォルトでは /user/local/ ディレクトリにインストールされます)。 nginxはどこにある? インストール ディレクトリの下の bin フォルダーに入り、nginx サービスを開始し、サーバーのデフォルト ポート 80 にアクセスして、インストールが成功したかどうかを確認します。 3. Nginx 設定の開始1. 設定ファイルNginx インストール ディレクトリに conf フォルダーがあります。その中の nginx.conf ファイルを開きます。 cd conf/ && vim nginx.conf 2. 単一サーバーのリバースプロキシでは、リバース プロキシに Nginx を使用するにはどうすればよいでしょうか? location パラメータに proxy_pass フィールドを追加し、リバース プロキシを必要とするサーバー アドレスとポート番号を入力します。 注意: 設定の各行はタイトルで終わる必要があります。 ! ! #リスニングディレクトリを次のように設定します: / 位置 / { ルートhtml; インデックス index.html index.htm; proxy_pass http://127.0.0.1:8080; # ローカルマシンのポート 8080 のリバースプロキシ # proxy_pass http://127.0.0.1:8081; # 複数の proxy_pass を同時に設定できます。ローカルマシンのポート 8081 のリバースプロキシ} 3. 複数のサーバーをリバースプロキシするサーバーが複数ある場合はどうなりますか? proxy_pass パラメータを継続的に追加することに加えて、アップストリーム サーバー グループを構成することがより良い解決策です。 設定ファイルの http ブロックにアップストリーム属性を追加します。 # helloという名前のサーバーグループを設定します アップストリームこんにちは{ # 1 つのサーバーは 1 つのサーバーに対応します。もちろん、異なるポートを持つ Web プログラムにすることもできます。server 127.0.0.1:8080; サーバー 127.0.0.1:8081; } # ロケーションブロック内のリバースプロキシをサーバーグループのロケーション/{に変更します ルートhtml; インデックス index.html index.htm; proxy_pass http://hello; # hello サーバー グループ内のすべてのサーバーをリバース プロキシします} 4. テストを実行する1. サービスを開始する設定が完了したら、Nginx インストール ディレクトリの下の sbin フォルダーに移動し、nginx プログラムを実行します。 ローカル 以前に起動したことがある場合は、nginx サービスをシャットダウンする必要はなく、nginx に設定ファイルを再読み込みさせるだけです。 nginx -s リロード ブラウザを更新します。リバース プロキシが成功すると、アクセスされたパスが構成ファイル内のサーバー アドレスに自動的にマップされます。 将来、ユーザー数が増えていくと、新しいサーバーを追加する必要が生じる可能性があります。このとき、nginx サーバーをシャットダウンせずに、設定ファイルを変更し、nginx -s reload コマンドを使用するだけで済みます。 2. サービスをシャットダウンするnginx サービスをシャットダウンするには、通常 2 つの方法があります。 nginx -s stop # 動作しているかどうかに関係なく、すぐに停止します nginx -s quit # プロセスが現在の作業を完了するまで待機し、安全に終了します 5. 負荷分散1. 負荷分散とは何ですか?サーバーごとに構成が異なるため、高性能サーバーにより多くのリクエストを割り当てられるように、負荷分散の概念が導入されました。 前述のように、Nginx には、加重ラウンドロビン (デフォルト)、IP ハッシュ、URL ハッシュなど、多くの負荷分散方法があります。ここでは、加重ラウンドロビンを紹介します。 加重ラウンドロビンとは、サーバーに重み値を追加することで、Nginx が重みに基づいてリクエストを分散することを意味します。重みが高いほど、受信するリクエストの数が多くなり、逆もまた同様です。 上図では、3 台のサーバーが構成されています。重み付けポーリング モードでは、6 つの異なるリクエストのうち、重みが 3 のサーバーには 3 つのリクエストが、重みが 2 のサーバーには 2 つのリクエストが、重みが 1 のサーバーには 1 つのリクエストが割り当てられます。負荷分散により、同時実行性の高い環境でのサーバーダウンタイムのリスクが大幅に軽減されます。 2. Nginxのロードバランシングを設定する同様に、nginx.conf ファイルを開いて設定します。 vim nginx.conf 上流ブロックに重みパラメータを追加します。 アップストリームこんにちは{ server server1:8080 weight=3; # server1の重みを3に設定する server server2:8080 weight=1; # server2の重みを1に設定する } 追加後、nginx -s reload! を実行してください。 上記は、Nginx サービスのクイックスタートチュートリアルの詳細な内容です。nginx 入門チュートリアルの詳細については、123WORDPRESS.COM の他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
>>: W3C チュートリアル (5): W3C XML アクティビティ
ファイルをディレクトリに解凍しますこれは解凍後のディレクトリですmy.iniファイルを入力しますダブ...
問題の背景業務システムのサーバ監視システムからディスク使用率が90%に達したという早期警告通知が来た...
目次制御されていないコンポーネント制御コンポーネント知らせ結論は制御されていないコンポーネントフォー...
目次ファイル()文法パラメータ例ブロブ()文法パラメータ財産方法例要約するファイル() File()...
1. 基本的な文法コードをコピーコードは次のとおりです。埋め込み src=url注: 埋め込みはさま...
1.html部分コードをコピーコードは次のとおりです。 <!DOCTYPE html> ...
1. まず、お使いのマシンに応じて、MySQL 公式サイトから対応するデータベースをダウンロードしま...
序文職場で次のような状況に遭遇しました。ログ システムのテーブルでは、時間フィールドには日付データで...
電話Amap API を呼び出す方法は? Amap が https://lbs.amap.com/a...
1. MySQL 5.7を解凍する2. 新しい設定ファイルmy.iniを作成し、 D:\Free\m...
目次アルゴリズム戦略単一ノードの差分配列ノードの差分キー値の使用要件アルゴリズム戦略React の調...
目次序文インデックス プッシュダウンとは何ですか?インデックスプッシュダウン最適化の原理インデックス...
Mavenパッケージを解凍する tar xf apache-maven-3.5.4-bin.tar....
目次序文グラフィックドライバーをインストールするCUDAをアンインストールするCUDAをインストール...
現在の需要:グループとファクターの 2 つのテーブルがあります。1 つのグループは複数のファクターに...