検索
ホームページ運用・保守Nginxkeepalived デュアルマシン ホット スタンバイ nginx を構成する方法

环境准备:

  2台centos: 192.168.0.105 和192.168.0.118, 虚拟ip(vip)为192.168.0.119

配置keepavlived

  分别在105和118上安装keepalived

yum install keepalived

  准备心跳角本

  keepalived的配置相当灵活,可以定时执行角本命令,用于心跳检查,比如,我们访问nginx发现nginx不可访问时,就关闭keepalived,从而切换到从nginx来实现不间断的服务支持。

vi /etc/keepalived/keepalived.conf

#!/bin/bash

count=0
for (( k=0; k<2; k++ ))
do
 check_code=$( curl --connect-timeout 3 -sl -w "%{http_code}\\n" http://localhost:81 -o /dev/null )
 if [ "$check_code" != "200" ]; then
  count=count +1
  continue
 else
  count = 0
  break
 fi
done
if [ "$count" != "0" ]; then
 killall keepalived
 exit 1
else
 exit 0
fi

  这段角本的意思就是说每次的心跳检查会执行一个for循环,访问,在for的2次循环中如果返回的状态都不是200就会关闭keepalived。这个角本在105和118两台机器上都要准备好。

  设置118机器上的keepalived为主节点,105机器上的keepalived为从节点,它们两个的配置文件差不太多

vi /etc/keepalived/keepalived.conf

  118机器keepalived的配置文件

! configuration file for keepalived
vrrp_script chk_nginx {
 script "/etc/keepalived/check_nginx.sh" # 心跳检测角本
 interval 2 #脚本执行间隔,每2s检测一次
 weight -5 #脚本结果导致的优先级变更,检测失败(脚本返回非0)则优先级 -5
 fall 3 #检测连续2次失败才算确定是真失败。会用weight减少优先级(1-255之间)
 rise 2 #检测1次成功就算成功。但不修改优先级
}
vrrp_instance vi_1 {
 state master #指定keepalived的角色,master表示此主机是主服务器,backup表示此主机是备用服务器
 interface eth0 #指定监测网络的接口。实例绑定的网卡,因为在配置虚拟ip的时候必须是在已有的网卡上添加的
 mcast_src_ip 192.168.0.118 ## 发送多播数据包时的源ip地址
 virtual_router_id 51 #虚拟路由标识,master和backup必须是一致的
 priority 100 #定义优先级,数字越大,优先级越高
 advert_int 2 #设定master与backup负载均衡器之间同步检查的时间间隔,单位是秒
 authentication { #设置验证类型和密码。主从必须一样
  auth_type pass #设置vrrp验证类型,主要有pass和ah两种
  auth_pass 1111 #设置vrrp验证密码,在同一个vrrp_instance下,master与backup必须使用相同的密码才能正常通信
 }
 virtual_ipaddress {
  192.168.0.119 #vrrp 虚拟地址 如果有多个vip,换行填写
 }
 track_script {
  chk_nginx # 心跳脚本,即在 vrrp_script 部分指定的名字
 }
}

115机器上的角本对上面的角本稍做变动即可

改变 state master -> state backup,priority 100 -> priority 90,mcast_src_ip 192.168.0.118 -> mcast_src_ip 192.168.0.105。其他的地方保持不变,是不是很简单。

! configuration file for keepalived
vrrp_script chk_nginx {
 script "/etc/keepalived/check_nginx.sh"
 interval 2
 weight -5
}
vrrp_instance vi_1 {
 state backup # 修改
 interface eth0
 mcast_src_ip 192.168.0.105 # 修改 为本机ip
 virtual_router_id 51
 priority 90 #数字变小
 advert_int 2
 authentication {
  auth_type pass
  auth_pass 1111
 }
 virtual_ipaddress {
  192.168.0.119
 }
 track_script {
  chk_nginx
 }
}

到这里keepalived的简单配置就完成了下面就启动keepalived

service keepalived start

安装nginx

查看nginx的依赖库是否完整 

rpm -qa zlib
rpm -qa zlib-devel
rpm -qa openssl
rpm -qa openssl-devel
rpm -qa pcre
rpm -qa pcre-devel
rpm -qa gcc

keepalived デュアルマシン ホット スタンバイ nginx を構成する方法

如果没有就安装 

yum -y install gcc zlib zlib-devel openssl openssl-devel pcre-devel

下载并解压nginx

mkdir nginxsrc
cd nginxsrc/

keepalived デュアルマシン ホット スタンバイ nginx を構成する方法

wget http://nginx.org/download/nginx-1.13.9.tar.gz
tar zxvf nginx-1.13.9.tar.gz
cd nginx-1.13.9/

keepalived デュアルマシン ホット スタンバイ nginx を構成する方法

./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module

安装在/usr/local/nginx/sbin/nginx 目录下 

make&&make install

keepalived デュアルマシン ホット スタンバイ nginx を構成する方法

执行成功后会显示leaving directory  

keepalived デュアルマシン ホット スタンバイ nginx を構成する方法

启动

/usr/local/nginx/sbin/nginx

keepalived デュアルマシン ホット スタンバイ nginx を構成する方法

检查

ps aux|grep nginx

keepalived デュアルマシン ホット スタンバイ nginx を構成する方法

开机启动

vi /etc/rc.local

添加一行

/usr/local/nginx/sbin/nginx

keepalived デュアルマシン ホット スタンバイ nginx を構成する方法

因为我的机器上80端口被别的应用占用了,所以就修改105和118的 nginx.conf 把端口80 修改为81

vi /usr/local/nginx/conf/nginx.conf

 keepalived デュアルマシン ホット スタンバイ nginx を構成する方法

分别个性105 和119上的index.html 加上一个ip以便们们识别打开的是哪个ip上的index.html

vi /usr/local/nginx/html/index.html

keepalived デュアルマシン ホット スタンバイ nginx を構成する方法

nginx重新加载配置

/usr/local/nginx/sbin/nginx -s reload

好了,我们访问一下

curl 192.168.0.119:81

返回的html是 118机器上的index.html

keepalived デュアルマシン ホット スタンバイ nginx を構成する方法

 现在我们把118的nginx停止

 /usr/local/nginx/sbin/nginx -s stop

这时118上的keepalived的心跳检查角本发现nginx无法访问会把keepalived关闭,然后转向从节点

我们再访问一下119

 curl 192.168.0.119:81

keepalived デュアルマシン ホット スタンバイ nginx を構成する方法

在118上重新启动nginx和keepalived

再访问119 返回的网址是118上的index.html

以上がkeepalived デュアルマシン ホット スタンバイ nginx を構成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事は亿速云で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
Nginx vs. Apache:Webサーバーテクノロジーの比較Nginx vs. Apache:Webサーバーテクノロジーの比較May 02, 2025 am 12:08 AM

Nginxは、高い並行性と静的コンテンツの処理に適していますが、Apacheは動的な内容と複雑なURL書き換えに適しています。 1.Nginxは、高い並行性に適したイベント駆動型モデルを採用しています。 2。Apacheは、動的なコンテンツに適したプロセスモデルまたはスレッドモデルを使用します。 3。NGINX構成は簡単ですが、Apache構成は複雑ですが、より柔軟です。

NginxとApache:展開と構成NginxとApache:展開と構成May 01, 2025 am 12:08 AM

NginxとApacheにはそれぞれ独自の利点があり、選択は特定のニーズに依存します。 1.NGINXは、単純な展開を備えた高い並行性に適しており、構成の例には仮想ホストとリバースプロキシが含まれます。 2。Apacheは複雑な構成に適しており、展開も同様に簡単です。構成の例には、仮想ホストとURL書き換えが含まれます。

Nginxユニットの目的:Webアプリケーションの実行Nginxユニットの目的:Webアプリケーションの実行Apr 30, 2025 am 12:06 AM

Nginxunitの目的は、Webアプリケーションの展開と管理を簡素化することです。その利点には、次のものが含まれます。1)Python、PHP、Go、Java、node.jsなどの複数のプログラミング言語をサポートします。 2)動的構成と自動リロード関数を提供します。 3)統一されたAPIを介してアプリケーションライフサイクルを管理します。 4)非同期I/Oモデルを採用して、高い並行性と負荷分散をサポートします。

Nginx:高性能Webサーバーの紹介Nginx:高性能Webサーバーの紹介Apr 29, 2025 am 12:02 AM

Nginxは2002年に開始され、C10Kの問題を解決するためにIgorsysoevによって開発されました。 1.Nginxは、高性能の非同期アーキテクチャであり、高い並行性に適した高性能Webサーバーです。 2。システムのパフォーマンスと信頼性を向上させるために、リバースプロキシ、ロードバランス、キャッシュなどの高度な機能を提供します。 3。最適化手法には、HTTP/2とセキュリティ構成を使用した、ワーカープロセスの数の調整、GZIP圧縮の有効化が含まれます。

Nginx vs. Apache:アーキテクチャを見てくださいNginx vs. Apache:アーキテクチャを見てくださいApr 28, 2025 am 12:13 AM

NginxとApacheの主なアーキテクチャの違いは、Nginxがイベント駆動型の非同期非ブロッキングモデルを採用し、Apacheはプロセスまたはスレッドモデルを使用することです。 1)nginxは、静的な内容と逆プロキシに適したイベントループとI/O多重化メカニズムを介して、高電流接続を効率的に処理します。 2)Apacheは、非常に安定しているがリソース消費量が高いマルチプロセスまたはマルチスレッドモデルを採用しており、リッチモジュールの拡張が必要な​​シナリオに適しています。

Nginx vs. Apache:長所と短所を調べますNginx vs. Apache:長所と短所を調べますApr 27, 2025 am 12:05 AM

Nginxは、高い同時コンテンツと静的コンテンツの処理に適していますが、Apacheは複雑な構成と動的コンテンツに適しています。 1。NGINXは、交通量の多いシナリオに適した同時接続を効率的に処理しますが、動的コンテンツを処理するときは追加の構成が必要です。 2。Apacheは、複雑なニーズに適したリッチモジュールと柔軟な構成を提供しますが、並行性のパフォーマンスが低いです。

NginxとApache:重要な違​​いを理解するNginxとApache:重要な違​​いを理解するApr 26, 2025 am 12:01 AM

NginxとApacheにはそれぞれ独自の利点と欠点があり、選択は特定のニーズに基づいている必要があります。 1.Nginxは、非同期の非ブロッキングアーキテクチャのため、高い並行性シナリオに適しています。 2。Apacheは、モジュラー設計のため、複雑な構成を必要とする低変動シナリオに適しています。

Nginxユニット:主要な機能と機能Nginxユニット:主要な機能と機能Apr 25, 2025 am 12:17 AM

Nginxunitは、複数のプログラミング言語をサポートし、動的構成、ゼロダウンタイム更新、組み込みのロードバランシングなどの機能を提供するオープンソースアプリケーションサーバーです。 1。動的構成:再起動せずに構成を変更できます。 2。多言語サポート:Python、Go、Java、PHPなどと互換性があります。 4。ビルトインロードバランシング:リクエストは、複数のアプリケーションインスタンスに配布できます。

See all articles

ホット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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 中国語版

SublimeText3 中国語版

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

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン