まず、実験の紹介
192.168.2.76 nginxのロードバランサ
192.168.2.82のWEB01サーバー
192.168.2.78のWEB02サーバー
第二に、nginxのソフトウェアをインストールします(以下の3台の仮想マシンが実行されるべきです)
そう自分自身をインストールするには、wgetのコマンドがインストールされていないいくつかのCentOSに7.6:
yumをwgetのインストール-y
):( 3をインストールするために必要なnginxのサーバーソフトウェアをインストールします。
$ rpmの-ivh EPEL-リリース - 最新7.noarch.rpm
$廉(ダイレクトyumのインストール)のnginxをインストール
それは簡単にインストールすると、インストールが完了したことだ、あなたはスタートnginxのを制御するためにsystemctlを使用することができます
$ Systemctlは、(ブートの追加)nginxのを可能にする
$ nginxの(オープンnginxの)を起動systemctl
の$ systemctlステータスnginxの(ビューステータス)
3台のサーバは、nginxのテスト正常動作するかどうかをインストールした後、Webサービスを提供しています。エラーがファイアウォールの原因である可能性があります場合は、ファイアウォール上で、最終的な手順を参照してください。
プロキシサーバnginxの設定ファイル、ロード・バランシングを変更します。名前が示唆するように、異なる複数のサービスに要求を配布する負荷分散を実現する、単一のサービスの圧力を軽減することです。
$ Viの/etc/nginx/nginx.conf(コンフィギュレーションファイルを変更するには、グローバルコンフィギュレーションファイル)
設定の詳細については#、以下を参照してください
#*公式英語ドキュメント:http://nginx.org/en/docs/
#*公式ロシアのドキュメント:http://nginx.org/ru/docs/を
nginxのユーザは、
(デフォルトは自分の、一般にはCPUコアの数よりも多く設定することができ、自動化され)、オートworker_processes
(エラー・ログ・パス)のerror_log /var/log/nginx/error.log
(PIDファイルは、PIDの/run/nginx.pidをパス)
#は、動的モジュールをロードします。/usr/share/nginx/README.dynamicを参照してください。
/usr/share/nginx/modules/*.confが含まれます。
{イベント
ON accept_mutex;(FI配列が設けられており、衝撃グループの現象の発生を防止するために、デフォルトはONである)
(プロセスが複数のネットワーク接続を受信し、同時に提供されるかどうか、デフォルトはオフである); multi_accept ON
worker_connections 1024;最大(工程接続)
}
HTTP {
LOG_FORMAT主'$ REMOTE_ADDR - $ REMOTE_USER [$ time_local "$要求"'
'$ステータス$ body_bytes_sent "$ HTTP_REFERER"'
' "$ HTTP_USER_AGENT" "$ HTTP_X_FORWARDED_FOR"';
/var/log/nginx/access.logメインのaccess_log。
sendfile ON;
(ここでコメント);#1 TCP_NOPUSHのON
TCP_NODELAY ON;
65 keepalive_timeout;(接続時間)
types_hash_max_size 2048;
GZIPオン;(オープン圧縮)
/etc/nginx/mime.typesを含む;
default_typeファイルapplication / octet-streamと;
#は/etc/nginx/conf.dディレクトリからモジュール構成ファイルをロードします。
#http://nginx.org/en/docs/ngx_core_module.html#includeを参照してください
詳細については、#を。
/etc/nginx/conf.d/*.confが含まれます。
#ここでは、ロードバランシング、どのように負荷分散ポリシーを設定し、nginxのは、組み込みのポーリング、体重、IP-ハッシュ、応答時間やその他のラフを持っています。
#デフォルトは、httpは、ラウンドロビン方式のための負荷を分割しています。
#重みは、配信要求に応じた重みであり、高重量負荷が重い
、同じサーバ上の同じ点を維持#IPに応じて割り当てられたIPハッシュ、IP。
#応答時間は、サーバーのnginxの応答時間に応じて、優先順位は、応答速度が速いサーバーを配布しました。
集中ポリシーを適宜組み合わせてもよい
(カスタムためのTomcatの負荷バランシングルール名)上流のTomcatを{
ip_hash;(ip_hashは、IPハッシュ法でした)
サーバ192.168.2.78:80量= 3 fail_timeout = 20S。
サーバ192.168.2.82:80重量= 4 fail_timeout = 20S。
##ルールの複数のセットを定義することができます
}
{サーバ
インクルードを聞く80 DEFAULT_SERVER;(デフォルトリスニングポート80)
はlocalhostを聞く;(監視サーバー)
サーバー名_;
ルートは、/ usr / share / nginxの/ HTML;
#デフォルトのサーバーのブロックのためのロード設定ファイル。
/etc/nginx/default.d/*.confが含まれます。
場所/ {(/すべての要求がルールとロードサービスの異なるセットに異なるドメイン名のためにカスタマイズすることができることを示している)
proxy_pass HTTP:// Tomcatの(独自の負荷分散ルール名を記入し、リバースプロキシ)
proxy_redirect OFF。 (ここでは、いくつかの設定が過去に直接コピーすることができます、その後、いくつかのない証明書を発行するがつながる可能性はありません)
proxy_set_headerホスト$ホスト;
Xをproxy_set_header -リアルタイムIP $ REMOTE_ADDR;
Xをproxy_set_header -転送さ-$ proxy_add_x_forwarded_forについて、
proxy_connect_timeout 90;(これらは、単に以下のタイムアウト設定の一部ではない場合があります)され
、90をproxy_send_timeout
proxy_read_timeout 90;
}
#LOCATION〜\(GIF | JPG | PNG){$(例えば、正規表現を書くこと)。
#ルート/ホーム/ルート/画像;
#}
error_page 404 /404.html。
位置= /40x.html {
}
error_page 500 502 503 504 /50x.html。
位置= /50x.html {
}
}
TLS対応のサーバーのための#設定。
#
#サーバー{
#は聞く443 SSL HTTP2 DEFAULT_SERVER。
#聞く[::]:443 SSL HTTP2 DEFAULT_SERVER。
# サーバーの名前 _;
#ルートを/ usr / share / nginxの/ htmlの。
#
#ssl_certificate "/etc/pki/nginx/server.crt"。
#ssl_certificate_key "/etc/pki/nginx/private/server.key"。
#1 ssl_session_cache共有:SSL:1メートルを。
#ssl_session_timeoutの10メートル。
!!のssl_ciphers HIGH#:aNULL:MD5;
;の#ssl_prefer_server_ciphers
#
##デフォルト・サーバ・ブロックのためのロード設定ファイル。
#は/etc/nginx/default.d/*.confが含まれます。
#
#位置/ {
#}
#
#error_page 404 /404.html。
#ロケーション= /40x.html {
#}
#1
#error_page 500 502 503 504 /50x.html。
#位置= /50x.html {
#}
#}
}
設定を更新したら、サービスを再起動せずに有効にする設定を再ロードすることができます
nginxの-sリロード
あなたがアクセス、それが原因ファイアウォールに投入することができることができない場合は、ポートが開いていません。
開始:firewalld開始systemctl
閉じ:firewalld停止systemctl
ビューのステータスを:systemctlステータスfirewalldの
ブートが無効になって:systemctl無効にfirewalld
電源オン:firewalldを有効systemctl
ポートを開きます。
追加
ファイアウォール-CMD --zone =公共--add-ポート= 80 / TCPの--permanentを(--permanent 永久、この引数は、再起動後に失敗しません)
リロード
ファイアウォール-CMD --reloadの
ビュー
ファイアウォール-CMDを-ゾーン=公共--query-ポート= 80 / tcpの
削除
ファイアウォール-CMD --zone =公共--remove-ポート= 80 / TCPの--permanentを