nginx + keepalived双活配置
一、安装nginx
我们这边默认安装的nginx的是1.12.2的版本,所以我们需要安装1.16.1版本的nginx的,才好,所以我们这边先更新yum源,步骤如下:
1、添加yum源:
[root@shtw-nk08 sbin]# cd /etc/yum.repos.d/
[root@shtw-nk08 sbin]# vim nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
2、yum安装nginx
[root@shtw-nk08 nginx]#yum install nginx
3、查看nginx的版本
[root@shtw-nk08 yum.repos.d]# nginx -v
nginx version: nginx/1.16.1
4、nginx.conf的配置
user nginx;
worker_processes 8;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid; # Load dynamic modules. See /usr/share/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf; events {
worker_connections 40960;
} http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048; #限制包上传大小
client_header_timeout 120s; #调大点
client_body_timeout 120s; #调大点
client_max_body_size 100m; #主要是这个参数,限制了上传文件大大小
client_body_buffer_size 256k; #gzip压缩
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 9;
gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php;
gzip_vary on; #proxy_buffering off; include /etc/nginx/mime.types;
default_type application/octet-stream; # Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
#include /etc/nginx/conf.d/*.conf; include server/*.conf; }
5、imgs.conf静态文档访问配置
server {
listen 8083;
location / {
#autoindex on; #autoindex => on 允许访问,off不允许访问
autoindex off;
root /data/;
}
location ^/imgs/~*\.(log|txt|png)$ {
add_header Content-Type text/plain;
root /data/;
}
}
6、正常服务conf
server {
listen 80;
listen 443 ssl;
server_name download.twrsp.com;
#charset koi8-r;
#access_log logs/host.access.log main;
#ssl on; #ssl on只允许443端口,注释之后,80和443端口都允许
ssl_certificate /etc/nginx/ssl_download_certificate/3468751_download.twrsp.com.pem;
ssl_certificate_key /etc/nginx/ssl_download_certificate/3468751_download.twrsp.com.key;
location / {
proxy_read_timeout 1200;
proxy_send_timeout 1200;
proxy_connect_timeout 1200;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://download.twrsp.com/;
}
}
upstream download.twrsp.com {
#SHTW-RspApp01
server 10.55.201.20:8082 weight=50;
}
7、重启、关闭、测试nginx
[root@shtw-nk08 nginx]# nginx -s reload #重启nginx
[root@shtw-nk08 nginx]# nginx -s stop #停止nginx
[root@shtw-nk08 nginx]# nginx -t #测试
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
8、如果nginx -s reload报错了,则执行下面脚本:
[root@shtw-nk08 nginx]# nginx -c /etc/nginx/nginx.conf
二、安装keepalived
1、IP的准备
| 主(nginx) | 10.55.202.213 |
| 从(nginx) | 10.55.202.214 |
| 虚拟ip(主) | 10.55.202.107 |
| 虚拟ip(从) | 10.55.202.108 |
2、安装keepalived
说明:主备都需要安装:
[root@shtw-nk08 keepalived]# yum install keepalived
3、配置文件修改
主nginx的keepalived修改:
[root@shtw-nk08 keepalived]# cd /etc/keepalived/
[root@shtw-nk08 keepalived]# mv keepalived.conf keepalived.conf.bak
[root@shtw-nk08 keepalived]# vim keepalived.conf
! Configuration File for keepalived group { VI_1 } vrrp_script chk_http_port {
script "/usr/local/sbin/check_ng.sh"
interval 2
weight -20
} vrrp_instance VI_1 {
state MASTER #表示主的nginx
interface eth0
virtual_router_id 51
priority 100
advert_int 1
mcast_src_ip 10.55.202.213 #主nginx的ip地址
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
chk_http_port
}
virtual_ipaddress {
10.55.202.107 #主的虚拟ip
}
}
#单台虚拟ip可以不用
vrrp_instance VI_2 {
state BACKUP #备份的意思
interface eth0
virtual_router_id 61
priority 99
advert_int 1
mcast_src_ip 10.55.202.213 #还是主的ip地址
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
chk_http_port
}
virtual_ipaddress {
10.55.202.108 #备份的虚拟ip地址
}
}
从的nginx的keepalived的配置:
[root@shtw-nk08 keepalived]# cd /etc/keepalived/
[root@shtw-nk08 keepalived]# mv keepalived.conf keepalived.conf.bak
[root@shtw-nk08 keepalived]# vim keepalived.conf
! Configuration File for keepalived group { VI_1 } vrrp_script chk_http_port {
script "/usr/local/sbin/check_ng.sh"
interval 2
weight -20
} vrrp_instance VI_1 {
state BACKUP #表示从的nginx
interface eth0
virtual_router_id 51
priority 99
advert_int 1
mcast_src_ip 10.55.202.214 #从的ip地址
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
chk_http_port
}
virtual_ipaddress {
10.55.202.107
}
} #单台虚拟ip可以不用
vrrp_instance VI_2 {
state MASTER #表示从的
interface eth0
virtual_router_id 61
priority 100
advert_int 1
mcast_src_ip 10.55.202.214 #从的ip地址
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
chk_http_port
}
virtual_ipaddress {
10.55.202.108 #从的虚拟ip地址
}
}
4、配置keepalived双活脚本
说明:这个脚本主从两台机器都需要配置,配置好之后,保存(wq)并退出
[root@shtw-nk05 sbin]# cd /usr/local/sbin
[root@shtw-nk05 sbin]# vim check_ng.sh
#!/bin/bash
#时间变量,用于记录日志
d=`date --date today +%Y%m%d_%H:%M:%S`
#计算nginx进程数量
n=`ps -C nginx --no-heading|wc -l`
#如果进程为0,则启动nginx,并且再次检测nginx进程数量,
#如果还为0,说明nginx无法启动,此时需要关闭keepalived
if [ $n -eq "0" ]; then
/etc/init.d/nginx start
n2=`ps -C nginx --no-heading|wc -l`
if [ $n2 -eq "0" ]; then
echo "$d nginx down,keepalived will stop" >> /var/log/check_ng.log
systemctl stop keepalived
fi
fi
[root@shtw-nk05 sbin]# chmod 755 chk_ng.sh #赋权限
5、启动keepalived
[root@shtw-nk08 keepalived]# systemctl start keepalived #启动keepalived [root@shtw-nk08 keepalived]# systemctl status keepalived #查看keepalived状态
如图:

6、启动验证
nginx和keepalived全部启动之后,在浏览器中测试一下:
1、先输入 10.55.202.213 => 访问成功
2、输入 10.55.202.214 => 访问成功
3、输入 10.55.202.107 和 10.55.202.108 =>访问成功
4、关停 10.55.202.213 之后测试 => 访问失败 ,输入10.55.202.107 => 访问成功
nginx + keepalived双活配置的更多相关文章
- tomcat+nginx+keepalived的配置
tomcat+nginx+keepalived的配置 1.在官网上下载Tomcat 2.将压缩包解压,并且移动到/opt/data/的目录下. .tar.gz /opt/data/ 3.进入到Tomc ...
- Nginx+Keepalived主从配置(双机主从热备)+Tomcat集群
拓扑环境 以下表格是这次測试须要的拓扑环境,几台server.每台server上安装什么,都有介绍. server名称 系统版本号 预装软件 IP地址/VIP Nginx主server CentOS ...
- 架构设计:负载均衡层设计方案(6)——Nginx + Keepalived构建高可用的负载层
1.概述 前两遍文章中,我们一直在说后文要介绍Nginx + Keepalived的搭建方式.这篇文章开始,我们就来兑现前文的承诺,后续的两篇文章我们将介绍Nginx + Keepalived和 LV ...
- nginx+keepalived双主高可用负载均衡
实验环境及软件版本:CentOS版本: 6.6(2.6.32.-504.el6.x86_64)nginx版本: nginx-1.6.3keepalived版本:keepalived-1.2.7 主LB ...
- Nginx+keepalived实现负载均衡
Nginx的优点是: 1.工作在网络的7层之上,可以针对http应用做一些分流的策略,比如针对域名.目录结构,它的正则规则比HAProxy更为强大和灵活,这也是它目前广泛流行的主要原因之一,Nginx ...
- nginx+keepalived实现nginx双主高可用的负载均衡
http://kling.blog.51cto.com/3320545/1253474 一.前言: 在互联网上面,网站为用户提供原始的内容访问,同时为用户提供交互操作.提供稳定可靠的服务,可以给用户带 ...
- 企业Nginx+Keepalived双主架构案例实战
通过上一次课程的学习,我们知道Nginx+keepalived主从配置,始终有一台服务器处于空余状态,那如何更好的利用起来呢,我们需要借助Nginx+keepalived双主架构来实现,如下图通过改装 ...
- nginx+keepalived高可用及双主模式
高可用有2中方式. 1.Nginx+keepalived 主从配置 这种方案,使用一个vip地址,前端使用2台机器,一台做主,一台做备,但同时只有一台机器工作,另一台备份机器在主机器不出现故障的时候, ...
- Nginx系列篇四:Nginx+keepalived搭建一个高可用的双机双主热备
建议:先阅读Nginx+keepalived主从配置,因为此篇是接着上篇开始的 上一篇我们简单的介绍了主从配置及其缺点,我们看一下双主热备配置: 2台Nginx+keepalived互为主备,各自绑定 ...
随机推荐
- SAS学习笔记54 RTF文件格式
Style RTF Control Word Example Code Italicize \i title '\i italicized title'; Underline \ul title '\ ...
- css 基础入门
CSS 概述 为了让网页元素的样式更加丰富,也为了让网页的内容和样式能拆分开,css 由此而生,css 是 Cascading Style Sheets 的字母缩写,意思是层叠样式表,有了 css,h ...
- 关于Vue中,父组件获取子组件的数据(子组件调用父组件函数)的方法
1. 父组件调用子组件时,在调用处传给子组件一个方法 :on-update="updateData" 2. 子组件在props中,接收这个方法并声明 props: { onUp ...
- table固定宽度与自动宽度
table-layout:auto(创建的table默认是此布局模式): 对table和td.th指定的宽度无效,浏览器会计算所有单元格的内容宽度才能得出一列宽度 如果想对单元格的内容自动折行需使用w ...
- SAP Marketing Cloud功能简述(三) 营销活动内容设计和产品推荐
Grace的前两篇文章: SAP Marketing Cloud功能简述(一) : Contacts和Profiles SAP Marketing Cloud功能简述(二) : Target Grou ...
- nginx 默认配置语法和日志的format
nginx 默认配置 查看有nginx哪些默认配置文件,打开/etc/nginx/nginx.conf文件,查看尾行部分 会默认将/etc/nginx/conf.d/文件下其他以.conf结尾的配置文 ...
- poi 读取word 遍历表格和单元格中的图片
背景 项目需要解析word表格 需要批量导入系统,并保存每行信息到数据库 并且要保存word中的图片, 并保持每条信息和图片的对应关系 一行数据可能有多条图片 解决办法 没有找到现成的代码,怎么办呐? ...
- java中javamail收发邮件实现方法
概述 1.邮件相关的标准 厂商所提供的 JavaMail 服务程序可以有选择地实现某些邮件协议,常见的邮件协议包括: SMTP(Simple Mail Transfer Protocol) :即简单邮 ...
- linux reboot ,shutdown,halt区别
reboot ,shutdown,halt区别 重启 reboot 和 shutdown -r now 效果是一样的都是重启 区别在于reboot 是重启时,删除所有的进程,为不是平稳的终止他 ...
- 如何使用Systemctl管理系统服务和单元?
chu原文:How To Use Systemctl to Manage Systemd Services and Units 简书:如何使用Systemctl管理系统服务和单元? 引言 System ...