ホームページ バックエンド開発 PHPチュートリアル Centos + nginx で負荷分散を最初から構成する

Centos + nginx で負荷分散を最初から構成する

Aug 08, 2016 am 09:30 AM
com nbsp nginx

nginxロードバランシングの理解

nginx は軽量で高性能な Web サーバーで、主に次の 2 つのことを実行できます。

    httpサーバーとして(Apacheと同じ効果)
  • リバースプロキシサーバーとして機能して負荷分散を実現します
現在、nginx はどこでも見ることができ、ダウンタイム後に Web ページに nginx という単語が表示されるのをよく見かけます。これは、nginx がその高いパフォーマンス、簡単な使用と構成、およびオープンソースの使用により、ますます多くのユーザーに受け入れられていることを示しています。

最初のものは http サーバーとして機能し、受信リクエストを処理するために php-fpm プロセスと結合します。nginx 自体は PHP を解析しません。それがクライアントからのリクエストである場合、それを受け入れるサーバーとして機能します。 phpプロセスに渡されて処理され、php処理完了後の結果がクライアントに送信されます。 nginx+php-fpmをインストールしたら、それぞれの設定ファイルを設定して起動するだけです。動作原理は次の説明でわかります:

Nginx は、外部プログラムの直接呼び出しや解析をサポートしていません。すべての外部プログラム (PHP を含む) は、FastCGI インターフェイスを通じて呼び出す必要があります。 FastCGI インターフェイスは、Linux 上のソケットです (このソケットはファイル ソケットまたは IP ソケットにすることができます)。 CGI プログラムを呼び出すには、FastCGI ラッパーも必要です (ラッパーは、別のプログラムを開始するために使用されるプログラムとして理解できます)。このラッパーは、ポートやファイル ソケットなどの固定ソケットにバインドされます。 Nginx が CGI リクエストをこのソケットに送信すると、ラッパーは FastCGI インターフェイスを通じてリクエストを受信し、新しいスレッドを生成してスクリプトを処理し、返されたデータを読み取ります。返されたデータは、固定ソケットに沿って FastCGI インターフェイスを介して Nginx に渡され、最後に、Nginx は返されたデータをクライアントに送信します。以下の図に示すように、これが Nginx+FastCGI の全体的な動作プロセスです。

上記の段落では、nginx+fastcgi の動作メカニズムについて説明しています。リクエストは nginx 設定ファイル内で照合され、エラー ファイルを直接返すなど、それに応じて処理されます (これと上記の間には少し違いがありますが、nginx ではできると思います)。 HTML などの静的ファイルに対して上の図と同様の分析を実行し、PHP プロセスを使用して PHP リクエストを処理します (ここには複数の PHP プロセスが存在する可能性があります)。

2 つ目は、リバース プロキシの負荷分散を使用することです。これは実際には非常に簡単です。簡単に言うと、サーバーのグループを定義し、リクエストをいずれかのサーバーに転送して処理し、負荷を軽減します。各サーバーの負荷を軽減するには、まずオンラインのリバース プロキシの定義を確認してください。

リバース プロキシ方式とは、プロキシ サーバーを使用してインターネット上で接続要求を受け入れ、その要求を内部ネットワーク上のサーバーに転送し、サーバーから取得した結果をインターネット上の接続を要求しているクライアントに返すことを指します。今回は、プロキシ サーバーが外部に対してリバース プロキシ サーバーとして表示されます。

リバース プロキシは、フォワード プロキシ (またはプロキシ) の反対です。プロキシについては聞いたことがあると思います。リソース B により便利にアクセスするために、リソース A を介してリソース B にアクセスします。その特徴は、ユーザーが何をするかを知っていることです。リバースプロキシのサービスの実際の処理サーバーはイントラネット上に配置されており、外部ネットワークはその逆にのみアクセスできます。プロキシサーバーにより、セキュリティが大幅に向上しました。

ソフトウェアをインストールする

nginxのインストールはとても簡単です

1. nginx、pcre(書き換え用)、zlib(圧縮用)、sslのインストールに必要な環境。これを自分でダウンロードしてコンパイルしてインストールすることもできます

yum -y zlib をインストールします;

yum –y インストールしてください;

yum –y install openssl;

2. nginx-*.tar.gzをダウンロードしてインストールします。

tar –zxvf nginx-1.2.8.tar.gz –C ./;

cd nginx-1.2.8;

./congigure --prefix=/usr/local/nginx;

作成&&インストール;

3. 構成

ここで設定する場合、http{} 間の内容を変更するだけで済みます。最初に変更するのは、サーバー グループを設定し、http ノード間に

を追加することです。 aupstream myserver {

nginx のアップストリームは、ポーリング (デフォルトでは、すべてのサーバーが時系列順に 1 つずつアクセスされます。サーバーがダウンしている場合は、自動的に削除されます)、重み (サーバーの位置確率は、サーバーの位置確率に比例します) をサポートしています。重み、これ サーバー構成が不均等な場合に設定可能)、ip_hash(リクエストされたIPごとにハッシュ計算が行われ、一定のルールに従って対応するサーバーが割り当てられます)、fair(リクエストは応答時間(rt)に従って割り当てられます)各サーバーの)、rt は優先度の割り当てを知っています)、url_hash(アクセスされた URL のハッシュ値に従ってリクエストを振り分けます)、ここではデフォルトのローテーション方法を使用します。

リクエストを myServer に向けます

location / {
proxy_pass http://myServer }

完全なドキュメント (コメントを削除したもの) は次のとおりです:

リーリー

2 つのサーバー間の負荷分散としてリバース プロキシ バックエンドを設定します

前の手順で、www.myapp1.com:80 と www.myapp2.com:8080 という 2 つのサーバー アドレスがあることがわかります。このサーバーに上記の nginx をインストールしました。 Win8 システムのコンピューターでは、Apache の仮想ホストを使用して 2 つのドメイン名が設定され、その 2 つのドメイン名のコードは互いに独立しており、設定も非常に簡単です。

1.Apache設定ファイルを設定します

私はxampp統合環境を使用しています。httpd.confにリスニングポートを追加する箇所が2か所あります。

8080を聞いてください つまり、ここは2つのポートを監視しています

80を聞く

8080を聞く

次の文が開いているかどうかを確認し、開いていない場合は、以下のように開きます。

リーリー

httpd-vhosts.conf に次の内容を追加します。

リーリー

Windows hosts ファイルを変更し、次の内容を追加します

リーリー

Linuxの/etc/hostsファイルを変更し、以下の内容を追加します

リーリー

ファイルindex.phpをwww.myapp1.com:80 [E:softxampphtdocswww.myapp1.comindex.php]に置きました

ファイルindex.phpもwww.myapp2.com:8080 [E:softxampphtdocswww.myapp2.comindex.php]に配置されます

ファイルの内容は基本的に同じですが、一方が myapp1 でもう一方が myapp2 である点が異なります。

win8 ブラウザに www.myapp1.com:80 と www.myapp2.com:8080 を入力すると、さまざまな効果が表示されます

そして、centos で以下の結果が表示されたら(自分で美化しました)、設定が成功したことを意味します

リーリー

リーリー

効果を確認してください

すべてがOKになったら、ブラウザからアクセスして効果を確認できます

言い忘れましたが、nginx プロキシサーバーのアドレスは http://192.168.1.113 です。

ブラウザに http://192.168.1.113/index.php と入力した後、更新を続けると、次の内容が表示されることがわかります

私はmyapp2、私はmyapp1です

これら 2 つのページを前後に入れ替えると、2 回更新することなくビューが 1 回増加します。これは、前述のデフォルトのローテーション トレーニング方法を証明していますが、ここには、ユーザーが処理せずに Web サイトにアクセスしたときの別の一般的な問題があります。 、セッションは別のサーバーに保存されます (ここでは 2 つのサーバーをシミュレートするために 2 つの異なるフォルダーを使用します)。セッション データのセットが複数存在する可能性があります。この問題を解決する方法については、次の記事で説明します。この質問は実際には非常に重要です。単純。

この記事の著作権は著者ifforever(luluyrt@163.com)に帰属します。記事を転載した後は、著者と原文リンクをわかりやすい位置に記載する必要があります。記事ページに記載されていない場合は、法的責任を追及する権利が留保されます。

上記では、負荷分散をすべての側面を含めて設定する centos+nginx を紹介しましたが、PHP チュートリアルに興味のある友人に役立つことを願っています。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Linuxでnginxを開始する方法 Linuxでnginxを開始する方法 Apr 14, 2025 pm 12:51 PM

Linuxでnginxを開始する手順:nginxがインストールされているかどうかを確認します。 systemctlを使用して、nginxを開始してnginxサービスを開始します。 SystemCTLを使用して、NGINXがシステムスタートアップでNGINXの自動起動を有効にすることができます。 SystemCTLステータスNGINXを使用して、スタートアップが成功していることを確認します。 Webブラウザのhttp:// localhostにアクセスして、デフォルトのウェルカムページを表示します。

nginx403エラーを解く方法 nginx403エラーを解く方法 Apr 14, 2025 pm 12:54 PM

サーバーには、要求されたリソースにアクセスする許可がなく、NGINX 403エラーが発生します。ソリューションには以下が含まれます。ファイル許可を確認します。 .htaccess構成を確認してください。 nginx構成を確認してください。 SELINUXアクセス許可を構成します。ファイアウォールルールを確認してください。ブラウザの問題、サーバーの障害、その他の可能なエラーなど、他の原因をトラブルシューティングします。

nginxでロードバランシングを構成する方法 nginxでロードバランシングを構成する方法 Apr 14, 2025 am 08:33 AM

負荷分散のためにnginxを構成する方法は?アップストリームサーバープールを定義し、サーバーIPとポートを指定します。仮想ホストを定義し、接続を聞いて、上流のプールに転送します。場所を指定し、リクエストを一致させ、上流のプールに転送します。

nginxの実行ステータスを確認する方法 nginxの実行ステータスを確認する方法 Apr 14, 2025 am 11:48 AM

nginxの実行ステータスを表示する方法は次のとおりです。PSコマンドを使用してプロセスステータスを表示します。 nginx configuration file /etc/nginx/nginx.confを表示します。 NGINXステータスモジュールを使用して、ステータスエンドポイントを有効にします。 Prometheus、Zabbix、Nagiosなどの監視ツールを使用します。

Windowsでnginxを構成する方法 Windowsでnginxを構成する方法 Apr 14, 2025 pm 12:57 PM

Windowsでnginxを構成する方法は? nginxをインストールし、仮想ホスト構成を作成します。メイン構成ファイルを変更し、仮想ホスト構成を含めます。 nginxを起動またはリロードします。構成をテストし、Webサイトを表示します。 SSLを選択的に有効にし、SSL証明書を構成します。ファイアウォールを選択的に設定して、ポート80および443のトラフィックを許可します。

Nginxが開始されるかどうかを確認する方法 Nginxが開始されるかどうかを確認する方法 Apr 14, 2025 pm 01:03 PM

nginxが開始されるかどうかを確認する方法:1。コマンドラインを使用します:SystemCTLステータスnginx(Linux/unix)、netstat -ano | FindStr 80(Windows); 2。ポート80が開いているかどうかを確認します。 3.システムログのnginx起動メッセージを確認します。 4. Nagios、Zabbix、Icingaなどのサードパーティツールを使用します。

nginxエラーログをクリーニングする方法 nginxエラーログをクリーニングする方法 Apr 14, 2025 pm 12:21 PM

エラーログは、/var/log/nginx(Linux)または/usr/local/var/log/nginx(macos)にあります。コマンドラインを使用して手順をクリーンアップします。1。元のログをバックアップします。 2。新しいログとして空のファイルを作成します。 3。nginxサービスを再起動します。自動クリーニングは、LogroTateや構成などのサードパーティツールでも使用できます。

nginx304エラーを解く方法 nginx304エラーを解く方法 Apr 14, 2025 pm 12:45 PM

質問への回答:304変更されていないエラーは、ブラウザがクライアントリクエストの最新リソースバージョンをキャッシュしたことを示しています。解決策:1。ブラウザのキャッシュをクリアします。 2.ブラウザキャッシュを無効にします。 3.クライアントキャッシュを許可するようにnginxを構成します。 4.ファイル許可を確認します。 5.ファイルハッシュを確認します。 6. CDNまたは逆プロキシキャッシュを無効にします。 7。nginxを再起動します。

See all articles