Nginx + keepalivedクラスター化された高可用性
環境への準備
C entos7 4、ファイアウォールをオフにし、selinuxをオフにします
- 故障やnginxの負荷の無1防止シングルポイントが均衡
192.168.112.153
192.168.112.154を - 無2 HTTPDシミュレートされたWebページ
192.168.112.160
192.168.112.161
- プリンシパルレンダリング
説明:2つの高可用性デバイスをマスターとバックアップに分割し、VIPを定義する必要があります。nginxロードバランシングが構成された後、keepalivedはローカルマシンのRS側と他のkeepalivedのIPアドレスを構成します。両方が有効な場合、VIPまたはアクセスに関係なくマスターとバックアップの両方にアクセスできます。単一の障害ポイントが発生した場合(マスターまたはバックアップの一方の端に障害が発生した場合)、VIPはエレガントで、継続的なフローが実現されます。
No-1インストールサービス
yum -y install gcc gcc-c++ pcre-devel zlib-devel keepalived
-
nginxパッケージをアップロードする
-
公式サイトから最新のnginxパッケージをダウンロードすることもできます
負荷分散を実現するためにnginxをインストールして構成します
tar xf nginx-1.18.0.tar.gz 解压
cd nginx-1.18.0 进入目录
./configure 检测编译环境
make && make install 编译并安装
nginx構成ファイルを変更する
vim /usr/local/nginx/conf/nginx.conf
- 34〜37行目は、負荷のあるバックエンドサーバーを定義しています[サーバーの外部]
- 49行目に[サーバーに]プロキシを追加します
配置No-2
- httpdをインストールします
yum -y install httpd
- テストページを書く
vim /var/www/html/index.html
コンテンツweb1、もう1つは異なり、web2
- httpdを起動し、ポートを確認します
No-1はnginxを開始し、負荷を確認します
/usr/local/nginx/sbin/nginx
No-1配置keepalived
vim /etc/keepalived/keepalived.conf
- 余分な行を削除します
- 8行でマスターを定義
- 9行目はネットワークカードをens33に変更します
- 11動作の重み[バックアップ電源はマスターほど重要ではありません]
- 18行目はVIPを定義しています。このネットワークセグメントで占有されていないip
マスターとバックアップは異なる構成である必要があり、他は同じです!!!
- 22行目にVIPを入力し、ポートを80に変更します
- 24行動アルゴリズム
- 26行目の永続性タイムアウトをコメントアウトします[記号は!】
- RSのIPとポートは29行目で終了します
- 31行目を変更してtcpを確認します
- 32行で冗長なものを削除し、次の行に接続ポートを追加します
サービスを開始し、高可用性を確認します
systemctl start keepalived
- VIPを見る
ip a show ens33
- 検証レンダリング、マスターのVIP
- 負荷を達成するために、すべてのライブ、マスター、bakcup、VIPにアクセスできます
単一の障害点をシミュレートする
- マスター側を止めて、VIPエレガントをチェックしてください
systemctl stop keepalived
- バックアップチェック
- Webページのテストレンダリング
- マスター側が非アクティブ化されていますが、負荷は引き続き達成可能であり、VIPはフローティングです。