IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Nginx+keepalived实现高可用集群的具体配置 -> 正文阅读

[系统运维]Nginx+keepalived实现高可用集群的具体配置

一.准备工作

? ? ? 首先我们需要准备两台主机,在此之前要在两台机器上安装nginx和keepalived服务,这两个服务在安装之前都需要安装依赖的.首先是nginx的安装:

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

然后就是keepalived的安装,也是先安装依赖:

yum install -y curl gcc openssl-devel libnl3-devel net-snmp-devel 
yum install keepalived -y

接下来就是要确保防火墙,selinux以及时间同步问题.

二.具体配置

? ? 由于我们是nginx和keepalived相结合,最后是在网页上访问的,所以我们需要先配置一个nginx访问界面的html.这个文件是在:/usr/local/nginx/html/下的index.html,具体配置如下:

<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>Master ip:192.168.204.130</p>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

这里面的ip地址设置为本机ip地址即可,主机的配置如上所示,从机的配置也是这样,唯一要修改的就是IP地址,这样我们访问的时候就可以看出不同了,下面我会给大家看一下访问的网页.

?

?以上就是两台机器的nginx网页了,第一张是主机,第二张是从机的.

接下来我们就要写个脚本了,要使用脚本监控nginx.

首先要:

 yum install psmisc -y 

接下来我们要创建脚本文件,在/etc/keepalived/创建一个check_nginx,sh文件,具体内容如下:

#!/bin/bash
#Auto check nginx process if is actived
killall -0 nginx
if [[ $? -ne 0 ]]
then
        systemctl stop keepalived
fi

两台机器上都需要创建这个脚本文件.接下来就是keepalived的集体配置了.

! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
        root@director_server
   }
   notification_email_from root@director_server
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
#   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_script check_nginx {
    script "/etc/keepalived/check_nginx.sh"
    interval 1
    #weight -20
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    mcast_src_ip 192.168.204.130
    nopreempt
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.204.196
     }
     track_script {
        check_nginx
     }
}

如上图是我们主机的配置,在这里我们需要注意的就是我们check_nginx.sh 的文件路径以及文件名称,对照着上面的配置进行修改基本上是没有什么问题的.

三.测试

? ?接下来我们配置完成,服务重启之后就要进行网页测试了,首先我们访问一下虚拟ip,

?我们会发现网页上的ip地址为主机的ip地址,接下来我们模拟宕机,先将主机的服务关闭,然后继续访问虚拟ip,看看会发生什么变化.

?看上面的图我们可以发现在主机服务关闭时,我们还是可以继续访问虚拟IP的,只是这时候的访问页面就跳到了我们从机的IP.

四.总结和排错思路

? ? ? 本次的配置过程其实并不是很难,主要是让我们通过动手配置来真切的体会到了keepalived的高可用以及在一台服务器出现宕机其他从机都可以代替主机的身份继续保持服务的继续运行,这一点时非常实用的,接下来我也会与大家分享一下我在这次配置中所遇到的问题.

问题一:我在写nginx的网页配置时发现无法添加本机的ip地址,但是服务重启并不会报错,我发现我所添加的 文本格式也是没有问题的,接下来我们就要思考一下为什么index.html修改不生效呢?我们就要去到nginx的源文件目录下的defalut.conf文件中,后来我发现原来是目录写错了,我配置的文件在/usr/local/nginx/html目录下,而我的配置文件写的识别目录在/usr/share/nginx/html目录下,在修改之后再次刷新网页就发现多加了IP.

问题二:我的从机在访问网页时显示的并不是nginx服务的页面,而是apache

?这个时候我们就要思考是否是nginx服务没有启动,果然由于我在修改完配置文件之后直接运行了重启命令,并没有查看服务状态,随后我查看了nginx服务的运行状态发现出现报错了,之后我们需要查看报错日志.

?

?我发现报错日志里写道80端口被占用,

? ? ? ? 然后我们使用netstat命令来查看并过滤一下80端口被什么服务占用,我们发现原来是被apache服务占用了80端口,所以nginx服务无法启动,我们在关闭apache服务后,nginx就可以正常启动了,再一次刷新网页也正常了.在这里我在访问页面出现apache的时候我就知道了是apache服务占用了端口,但是我之所以说的这么详细就是要和大家分享排错思路,我们在发现错误时第一个要想到是什么造成了错误的发生,在配置文件检查无误之后就要想到去查看日志文件,然后再继续进行后面的排错.希望本次的分享对大家的学习和排错有了一点点的帮助,另外祝大家七夕节快乐!!!!

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-15 15:58:38  更:2021-08-15 15:58:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 9:42:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码