一.nginx部署

IP主机名系统
192.168.100.50server1(主)CentOS 7
192.168.100.60server2(备)CentOS 7
1.安装nginx (编译安装,不要使用yum安装)
#先安装C语言和编译安装的环境
yum install gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl openssl-devel -y
#下载nginx环境
[root@server ~]# cd /usr/local/src/
[root@server /usr/local/src/]# wget http://nginx.org/download/nginx-1.13.0.tar.gz
[root@server /usr/local/src/]# tar -zxvf nginx-1.13.0.tar.gz
2.编译安装nginx
[root@server /usr/local/src/]# cd nginx-1.13.0
#./configure  是运行nginx安装脚本  --prefix是配置安装路径
[root@server /usr/local/src/nginx-1.13.0]# ./configure --prefix=/usr/local/nginx 
#make && make install  开始编译安装
[root@server /usr/local/src/nginx-1.13.0]# make && make install
3.配置nginx配置文件
[root@server /usr/local/src/nginx-1.13.0]# vi /usr/local/nginx/conf/nginx.conf
#修改以下两处地方,找到并修改
user root;
listen 88;
4.修改 Nginx 欢迎首页内容(用于后面测试, 用于区分两个节点的 Nginx):
[root@server /usr/local/src/nginx-1.13.0]#vi /usr/local/nginx/html/index.html
192.168.100.50 中的标题加 50
<h1>Welcome to nginx! 1</h1>
192.168.100.60 中的标题加 60
<h1>Welcome to nginx! 2</h1>
5.测试是否安装成功
[root@server /usr/local/src/nginx-1.13.0]# /usr/local/nginx/sbin/nginx -t
#若出现以下显示则成功
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

6.启动nginx (可以在网上查找资料,将其彻底加入系统服务,仅用systemctl start nginx就能启动)

[root@server /usr/local/src/nginx-1.13.0]# /usr/local/nginx/sbin/nginx  #启动
[root@server /usr/local/src/nginx-1.13.0]# /usr/local/nginx/sbin/nginx -s reload #重启
[root@server /usr/local/src/nginx-1.13.0]# /usr/local/nginx/sbin/nginx -s stop #关闭
[root@server ~]# vi /etc/rc.local
#添加nginx开机自启
/usr/local/nginx/sbin/nginx

7.安装完成后访问192.168.100.50:88 #出现以下界面即成功

二.keepalived部署(双机主备)

参考文章Keepalived 原理与实战 - 知乎 (zhihu.com)

1.主节点server1安装keepalived(编译安装)

安装包地址(尽量选择新版本): Keepalived for Linux

[root@server1 ~]# tar -zxvf keepalived-2.0.18.tar.gz -C /usr/local/src/
[root@server1 ~]# cd /usr/local/src/
[root@server1 /usr/local/src/]# mv keepalived-2.0.18 keepalived
#安装必要的辅助环境
[root@server1 /usr/local/src/]# yum -y install libnl libnl-devel
#开始安装
[root@server1 /usr/local/src/keepalived]# ./configure --prefix=/usr/local/keepalived --sysconf=/etc
#prefix:keepalived安装的位置
#sysconf:keepalived核心配置文件所在位置,固定位置,改成其他位置则keepalived启动不了,/var/log/messages中会报错
[root@server1 /usr/local/src/keepalived]# make && make install

2.配置并启动

#将keepalived 添加为系统服务
[root@server1 etc]# pwd   #显示路径
/usr/local/src/keepalived/keepalived/etc
[root@server1 etc]# ll    #查看文件详细信息
total 44
drwxrwxr-x 2 1000 1000    86 Apr 16 13:47 init
drwxrwxr-x 2 1000 1000   109 Apr 16 13:47 init.d
drwxrwxr-x 2 1000 1000   109 Apr 16 13:48 keepalived
-rw-r--r-- 1 root root 19849 Apr 16 13:47 Makefile
-rw-rw-r-- 1 1000 1000   191 Mar  5  2021 Makefile.am
-rw-rw-r-- 1 1000 1000 18797 Mar  6  2021 Makefile.in
drwxrwxr-x 2 1000 1000    24 May 30  2020 openrc
drwxrwxr-x 2 1000 1000   117 Apr 16 13:48 sysconfig
[root@server1 etc]# cp init.d/keepalived /etc/init.d/
[root@server1 etc]# cp sysconfig/keepalived /etc/sysconfig/
#如需覆盖,尽情覆盖
#启动keepalived,先刷新服务,配置基础文件
[root@server1 etc]# systemctl daemon-reload
#先修改配置文件
[root@server1 etc]# cd /etc/keepalived/
[root@server1 keepalived]# vi keepalived.conf
#根据以下信息对自己的配置文件进行修改
global_defs {
   # 路由id:当前安装keepalived的节点主机标识符,保证全局唯一
   router_id keep_104
}
​
vrrp_instance VI_1 {
    # 表示状态是MASTER主机还是备用机BACKUP
    state MASTER
    # 该实例绑定的网卡名称
    interface ens34   #我的100网段对应的是ens34
    # 保证主备节点一致即可
    virtual_router_id 51
    # 权重,master权重一般高于backup,如果有多个,那就是选举,谁的权重高,谁就当选
    priority 100
    # 主备之间同步检查时间间隔,单位秒
    advert_int 2
    # 认证权限密码,防止非法节点进入
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    # 虚拟出来的ip,可以有多个(vip)
    virtual_ipaddress {
        192.168.100.16   #这里我弄的100.16
    }
}
#修改完后启动keepalived
[root@server1 keepalived]# systemctl start keepalived
#启动后查看进程
[root@server1 keepalived]# ps -ef | grep keepalived
root       1524      1  0 16:00 ?        00:00:00 /usr/local/keepalived/sbin/keepalived -D
root       1525   1524  0 16:00 ?        00:00:01 /usr/local/keepalived/sbin/keepalived -D
root       1526   1524  0 16:00 ?        00:00:00 /usr/local/keepalived/sbin/keepalived -D
root       1594   1495  0 16:43 pts/0    00:00:00 grep --color=auto keepalived
备份节点server2安装过程与server1一样,只是配置文件修改的地方不同
[root@server2 keepalived]# vi keepalived.conf
global_defs {
   router_id keep_105
}
​
vrrp_instance VI_1 {
    # 备用机设置为BACKUP
    state BACKUP
    interface ens34
    virtual_router_id 51
    # 权重低于MASTER
    priority 80
    advert_int 2
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        # 注意:主备两台的vip都是一样的,绑定到同一个vip
        192.168.100.16
    }
}
#配置完成后启动即可

然后两台机器keepalived都启动完成后,访问192.168.100.16:88,如果没有问题会默认直接跳转到192.168.100.50:88,当把server1的keepalived服务停掉之后,再次访问192.168.100.16:88,会直接跳转到192.168.100.60:88

三. keepalived 双机互为主备

互为主备的意思就是既是主服务器,又是热备服务器

安装过程相同,不同地方在于配置文件的编写,确保nginx运行正常

更多推荐