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;


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

Source: https://habr.com/ru/post/J213739/


All Articles