首页 > 系统相关 >Linux系统Keepalive Nginx做前置机配置

Linux系统Keepalive Nginx做前置机配置

时间:2023-11-15 18:34:30浏览次数:41  
标签:nginx ZE keepalived Nginx usr Linux root NGXFR01 Keepalive

 

  • 1、软件官网下载

https://www.keepalived.org/download.html
http://nginx.org/download/
选择软件版本如下
[root@ZE-NGXFR01 data]# ll
total 1960
-rw------- 1 sysadm sysadm 927631 Nov 15 10:34 keepalived-2.0.10.tar.gz
-rw------- 1 sysadm sysadm 1073322 Nov 15 11:01 nginx-1.22.0.tar.gz

  • 2、服务器地址规划

IP地址信息
VIP:10.64.137.50
host1:10.64.137.51
host2:10.64.137.52
目录配置
/usr/local 本地系统管理员软件安装目录(安装系统级的应用)
/etc 存放系统管理和配置文件
操作系统版本
# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

  • 3、keepalived软件安装

[root@ZE-NGXFR01 data]# tar -zxf keepalived-2.0.10.tar.gz
[root@ZE-NGXFR01 data]# cd keepalived-2.0.10/
[root@ZE-NGXFR01 keepalived-2.0.10]# ./configure --prefix=/usr/local/keepalived --sysconf=/etc
● prefix:keepalived安装的位置
● sysconf:keepalived核心配置文件所在位置,固定位置,改成其他位置则keepalived启动不了,/var/log/messages中会报错

configure: error:
!!! OpenSSL is not properly installed on your system. !!!
!!! Can not include OpenSSL headers files. !!!
[root@ZE-NGXFR01 keepalived-2.0.10]# yum install -y openssl openssl-devel gcc gcc-c++ libnfnetlink-devel libnl libnl-devel

[root@ZE-NGXFR01 keepalived-2.0.10]# ./configure --prefix=/usr/local/keepalived --sysconf=/etc
[root@ZE-NGXFR01 keepalived-2.0.10]# make && make install

3.2 编辑两个节点的keepalived.conf配置文件
节点1(host1):
[root@ZE-NGXFR01 keepalived-2.0.10]# vi /etc/keepalived/keepalived.conf

! Configuration File for keepalived
global_defs {
router_id LVS_MASTER #路由id:当前安装keepalived的节点主机标识符,保证全局唯一
}
vrrp_script check_nginx {
script "/etc/keepalived/check_nginx.sh"
interval 2 # 每隔两秒运行上一行脚本
weight 5 # 如果脚本运行成功,则升级权重+5 ; weight -5 # 如果脚本运行失败,则升级权重-5
}

vrrp_instance VI_1 {
state MASTER # 表示状态是MASTER主机还是备用机BACKUP
interface ens192 # 该实例绑定的网卡名称
virtual_router_id 50 # 保证主备节点一致即可
priority 100 # 权重,master权重一般高于backup,如果有多个,那就是选举,谁的权重高,谁就当选
advert_int 1 # 主备之间同步检查时间间隔,单位秒
authentication { # 认证权限密码,防止非法节点进入
auth_type PASS
auth_pass 1111
}
virtual_ipaddress { # 虚拟出来的ip,可以有多个(vip)
10.64.137.50/24 dev ens192 label ens192:1
}
unicast_src_ip 10.64.137.51
unicast_peer {
10.64.137.52
}

track_script {
check_nginx # 追踪nginx脚本
}
}

节点2(host2):
[root@ZE-NGXFR02 keepalived-2.0.10]# vi /etc/keepalived/keepalived.conf

! Configuration File for keepalived
global_defs {
# 路由id:当前安装keepalived的节点主机标识符,保证全局唯一
router_id LVS_BACKUP
}
vrrp_script check_nginx {
script "/etc/keepalived/check_nginx.sh"
interval 2 # 每隔两秒运行上一行脚本
weight 5 # 如果脚本运行成功,则升级权重+5 ; weight -5 # 如果脚本运行失败,则升级权重-5
}
vrrp_instance VI_1 {
state BACKUP # 表示状态是MASTER主机还是备用机BACKUP
interface ens192 # 该实例绑定的网卡名称
virtual_router_id 50 # 保证主备节点一致即可
priority 80 # 权重,master权重一般高于backup,如果有多个,那就是选举,谁的权重高,谁就当选
advert_int 1 # 主备之间同步检查时间间隔,单位秒
authentication { # 认证权限密码,防止非法节点进入
auth_type PASS
auth_pass 1111
}
virtual_ipaddress { # 虚拟出来的ip,可以有多个(vip)
10.64.137.50/24 dev ens192 label ens192:1
}
unicast_src_ip 10.64.137.52
unicast_peer {
10.64.137.51
}

track_script {
check_nginx # 追踪nginx脚本
}
}

3.3 编辑Nginx检测脚本
vi /etc/keepalived/check_nginx.sh
#!/bin/bash
A=`ps -C nginx --no-header |wc -l`
# 判断nginx是否宕机,如果宕机了,尝试重启
if [ $A -eq 0 ];then
systemctl start nginx
# 等待一小会再次检查nginx,如果没有启动成功,则停止keepalived,使其启动备用机
sleep 3
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
systemctl stop keepalived
fi
fi
并增加脚本的执行权限
chmod +x /etc/keepalived/check_nginx.sh

[root@ZE-NGXFR01 keepalived]# systemctl start keepalived
[root@ZE-NGXFR01 keepalived]# systemctl status keepalived
● keepalived.service - LVS and VRRP High Availability Monitor
Loaded: loaded (/usr/lib/systemd/system/keepalived.service; disabled; vendor preset: disabled)
Active: active (running) since Wed 2023-11-15 14:33:41 CST; 1s ago
Process: 52431 ExecStart=/usr/local/keepalived/sbin/keepalived $KEEPALIVED_OPTIONS (code=exited, status=0/SUCCESS)
Main PID: 52432 (keepalived)
CGroup: /system.slice/keepalived.service
├─52432 /usr/local/keepalived/sbin/keepalived -D
└─52433 /usr/local/keepalived/sbin/keepalived -D

Nov 15 14:33:41 ZE-NGXFR01 systemd[1]: Started LVS and VRRP High Availability Monitor.
Nov 15 14:33:41 ZE-NGXFR01 Keepalived_vrrp[52433]: Registering Kernel netlink reflector
Nov 15 14:33:41 ZE-NGXFR01 Keepalived_vrrp[52433]: Registering Kernel netlink command channel
Nov 15 14:33:41 ZE-NGXFR01 Keepalived_vrrp[52433]: Opening file '/etc/keepalived/keepalived.conf'.
Nov 15 14:33:41 ZE-NGXFR01 Keepalived_vrrp[52433]: Assigned address 10.64.137.51 for interface ens192
Nov 15 14:33:41 ZE-NGXFR01 Keepalived_vrrp[52433]: Assigned address fe80::a14f:df56:7a0f:347f for interface ens192
Nov 15 14:33:41 ZE-NGXFR01 Keepalived_vrrp[52433]: Registering gratuitous ARP shared channel
Nov 15 14:33:41 ZE-NGXFR01 Keepalived_vrrp[52433]: (VI_1) removing VIPs.
Nov 15 14:33:41 ZE-NGXFR01 Keepalived_vrrp[52433]: (VI_1) Entering BACKUP STATE (init)
Nov 15 14:33:41 ZE-NGXFR01 Keepalived_vrrp[52433]: VRRP sockpool: [ifindex(2), family(IPv4), proto(112), unicast(0), fd(10,11)]
[root@ZE-NGXFR01 keepalived]#
[root@ZE-NGXFR01 keepalived]# hostname -I
10.64.137.51 10.64.137.50

4、Nginx软件安装
[root@ZE-NGXFR01 data]# tar -zxvf nginx-1.22.0.tar.gz
[root@ZE-NGXFR01 data]# cd nginx-1.22.0/
#安装编译工具和库文件
[root@ZE-NGXFR01 data]# yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
[root@ZE-NGXFR01 data]# yum install -y pcre pcre-devel
#配置ssl模块、配置gzip的gzip_static配置,需要安装–with-http_gzip_static_module模块
[root@ZE-NGXFR01 data]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module
[root@ZE-NGXFR01 data]# make && make install

[root@ZE-NGXFR01 nginx-1.22.0]# /usr/local/nginx/sbin/nginx -v
nginx version: nginx/1.22.0

3.1把nginx配置为系统服务
创建 /usr/lib/systemd/system/nginx.service文件

 1 [Unit]
 2 Description=nginx
 3 After=network.target
 4 [Service]
 5 Type=forking
 6 ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
 7 ExecReload=/usr/local/nginx/sbin/nginx -s reload
 8 ExecStop=/usr/local/nginx/sbin/nginx -s quit
 9 PrivateTmp=true
10 [Install]
11 WantedBy=multi-user.target

授权:chmod 755 /usr/lib/systemd/system/nginx.service
重新加载:systemctl daemon-reload

启动Nginx服务
systemctl start nginx
systemctl status nginx

3.2 Nginx配置多端口转发代理
# cat /usr/local/nginx/conf/nginx.conf|grep -Ev "(#|^$)"

worker_processes 1;
error_log logs/error.log;

pid logs/nginx.pid;

events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
access_log logs/access.log;

sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
#数据平台
server {
listen 4000;
location / {
proxy_pass http://10.64.149.115:4000;
}
}
#公众号
server {
listen 30002;
location / {
proxy_pass http://10.64.147.211:30002;
}
}
server {
listen 32711;
location / {
proxy_pass http://10.64.147.211:32711;
}
}
}

 

标签:nginx,ZE,keepalived,Nginx,usr,Linux,root,NGXFR01,Keepalive
From: https://www.cnblogs.com/helontian/p/17834479.html

相关文章

  • Linux管理员密码恢复
    Linux管理员密码恢复在大多数的linux中在GRUB界面按下e键,进入启动命令编辑模式,在这里一般有下面这三行东西: 其中:第一行root行表示了指定根目录为哪个盘那个分区第二行kernel行表示了要加载的内核文件第三行initrd行表示了指定要加载的初始内存文件系统文件,用于在启动过程中......
  • putty连接linux时慢
    情况描述:putty连接rhel6/7时输入用户可能会等待10-30秒才有提示输入密码解决办法:vi/etc/ssh/sshd_config###找到GSSAPIAuthenticationyes,修改为GSSAPIAuthenticationno###注意,这里你也需要将UseDNS修改为no,CentOS默认是yes,即使这行已被注释,你也需要加上UseDNSno ......
  • nginx allow和deny配置
     在NGINX中,可以通过配置文件和特定的指令来实现权限控制。以下是一些常见的权限控制方法:使用deny指令:在NGINX配置文件中,可以使用deny指令来拒绝特定IP地址或IP地址范围的访问。可以将deny指令放在server块或location块中。例如,要拒绝特定IP地址的访问,可以这样配置:nginx......
  • linux Libevent 轻量级事件通知库API简介和示例
    1.事件处理框架libevent是一个C语言编写,轻量级开源高性能事件框架。事件驱动,支持多种IO多路复用(如epoll),支持注册优先级等//头文件#include<event2/event.h>//创建一个事件处理框架structevent_base*event_base_new(void);//销毁一个事件处理框架voidevent_ba......
  • Linux I/O重定向与管道详解
    原理
在Linux中,I/O重定向是通过重定向符号实现的。标准输入重定向使用符号“<”,标准输出重定向使用符号“>”。
例如,将文件file.txt的内容输出到终端,可以使用以下命令:catfile.txt将文件file.txt的内容输出到文件output.txt,可以使用以下命令:catfile.txt>output.txt管......
  • Linux网关设置
    你需要将网卡为en1,IP地址为192.168.3.12,网关为192.168.3.1的路由策略设置为在访问192.168.3.0/24网段时走en1网卡,那么你可以通过下面的命令设置: ......
  • Linux文件管理详解
    Linux文件系统的体系结构
Linux文件系统采用层次结构,从根目录(/)开始,包含多个子目录和文件。文件系统之间通过虚拟文件系统(VFS)进行通信,VFS使得Linux可以支持多个不同的文件系统,每个表示一个VFS的通用接口。Linux文件系统组成
Linux文件系统主要由以下几部分组成:1. 文件:文件是存......
  • Linux公共账户管理详解
    Linux公共账户管理简介
Linux公共账户管理是Linux系统管理中的重要环节,涉及到系统的安全性和稳定性。在Linux系统中,每个用户都有一个唯一的用户名和密码,用于登录系统并执行各种操作。公共账户管理的主要任务包括账户的创建、删除、权限设置、密码管理等。
Linux公共账户管理操......
  • Linux文件权限管理详解
    Linux文件权限表示方式
在Linux系统中,文件权限使用数字表示法,每组权限用三位二进制数表示,分别为文件所有者的读、写和执行权限;和所有者同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限。
例如,一个文件的权限为755,表示文件所有者具有读、写、执行权限(7),同组用户具......
  • Linux下make工具的使用
    环境:Ubuntu18.04.6文章参考:爱编程的大丙(subingwen.cn)简介:gcc命令可以帮助我们编译源文件,但当源文件数量多到一定程度时,使用gcc命令就会变得较为复杂。项目构建工具make应运而生,make是一个命令工具,用于解释makefile中指令的命令工具。在构建项目时,make工具会自动加载当......