NginX負荷分散Apacheサーバー

こんにちは、ハブロの皆さん。



私はネイティブのロシア人ではなく、比較的最近この言語を書いて話すので、私は良い文法を持っていないことをすぐに警告したいので、事前に謝罪します。



2年前の作業過程で、HTML + PHP + MSSQLに基づいたプロジェクトを開始しました。もちろん、このすべての作業のWeb部分は有名なApache WEBサーバーで行われました。 しかし、時間が経つにつれて、負荷が増加し始め、いくつかのWEBサーバー間で負荷を分散する時が来ました。 多くの議論と議論の末、次の決定に至りました。 次のスキームに注意を切り替えてください。



画像



スキームを実現するために必要なもの:



1)NginX-トラフィックのバランスをとるためのプロキシサーバー

2)2つのApacheサーバー



この記事では、NginXベースのトラフィックバランシングサーバーのセットアップについて説明します。

このため、CentOS 6.4オペレーティングシステムを選択します。



サーバーには2つのネットワークカードがあり、そのうちの1つはインターネットにアクセスして、インターフェイスにアクセスする設定を行います。



cd / etc / sysconfig / network-scripts



vi ifcfg-eth0



デバイス= eth0

HWADDR = 00:0C:33:6a:90:F8

TYPE =イーサネット

UUID = de83281a-sa20-4791-b588-5621718adf4d

ONBOOT =はい

NM_CONTROLLED =はい

BOOTPROTO =静的

IPADDR = 217.11.175.73

NETMASK = 255.255.255.224

ゲートウェイ= 217.11.175.33

DNS1 = 217.11.190.2





これでインターネットができました。次にローカルネットワークを構成します



cd / etc / sysconfig / network-scripts



vi ifcfg-eth0



デバイス= eth1

HWADDR = 00:0V:35:6a:90:F3

TYPE =イーサネット

UUID = de83281a-sa10-4791-b577-5621718adf4d

ONBOOT =はい

NM_CONTROLLED =はい

BOOTPROTO =静的

IPADDR = 192.168.1.3

ネットマスク= 255.255.255.0





次に、トラフィックのバランスを取るためにプロキシサーバーのインストールとセットアップを開始しましょう。



--- CentOSでパッケージを更新する

yum update -y




#wget nginx.org/packages/rhel/6/noarch/RPMS/nginx-release-rhel-6-0.el6.ngx.noarch.rpm

#rpm -ivh nginx-release-rhel-6-0.el6.ngx.noarch.rpm





-Nginxの使用を開始する

yum install nginx -y




カタログにインストールした後

/ etc / nginx


NginX構成ファイルが表示されたら、既存のファイルをバックアップします

cp nginx.conf /etc/nginx/nginx.conf.backup


その後、設定ファイルの変更を開始します

rm nginx.conf




vi nginx.conf




新しい設定を追加します



#プロセスを開始するユーザーとグループ

ユーザーnginx;



#3ワークフロー

worker_processes 3;



#エラーのログ

error_log /var/log/nginx/error.log debug;



イベント{

#最大動作接続

worker_connections 1024;

}



http {



#MIMEテーブルを接続します

mime.typesを含めます。

#デフォルトのMIMEタイプ

default_type application / octet-stream;

client_header_timeout 3m;

client_body_timeout 3m;

send_timeout 3m;

sendfile on;



#モジュールにより、使用可能なサーバーのグループを記述できます

#proxy_passおよびfastcgi_passディレクティブで。

アップストリームWeb {

#このパラメーターは、IPアドレスの最初の4つの動作でセッションをハッシュします。これは、誰かが非同期要求を使用する場合に役立ちます

ip_hash;

#ディレクティブは、サーバーの名前とパラメーターを設定します。 ご注意ください

#proxy_passディレクティブで「pv」という名前を使用します

サーバー192.168.28.8重量= 2; #max_fails = 60 fail_timeout = 2s;

サーバー192.168.28.9重量= 2; #max_fails = 60 fail_timeout = 2s;



}

サーバー{

#ポート80をリッスンする

80を聞きます。

場所/ {



#前述のProxy_passディレクティブ

proxy_pass web;

#プロキシ設定を接続する

/etc/nginx/proxy.confを含めます。



}

}

}







構成で、プロキシ設定を指定するproxy.confファイルを接続しました



proxy_redirect off;

proxy_set_header Host $ host;

proxy_set_header X-Real-IP $ remote_addr;

proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for;

client_max_body_size 10m;

client_body_buffer_size 128k;

proxy_connect_timeout 90;

proxy_send_timeout 90;

proxy_read_timeout 90;

proxy_buffers 32 4k;

proxy_cache_bypass http;





ご清聴ありがとうございました。






All Articles