一、安装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双活配置的更多相关文章

  1. tomcat+nginx+keepalived的配置

    tomcat+nginx+keepalived的配置 1.在官网上下载Tomcat 2.将压缩包解压,并且移动到/opt/data/的目录下. .tar.gz /opt/data/ 3.进入到Tomc ...

  2. Nginx+Keepalived主从配置(双机主从热备)+Tomcat集群

    拓扑环境 以下表格是这次測试须要的拓扑环境,几台server.每台server上安装什么,都有介绍. server名称 系统版本号 预装软件 IP地址/VIP Nginx主server CentOS ...

  3. 架构设计:负载均衡层设计方案(6)——Nginx + Keepalived构建高可用的负载层

    1.概述 前两遍文章中,我们一直在说后文要介绍Nginx + Keepalived的搭建方式.这篇文章开始,我们就来兑现前文的承诺,后续的两篇文章我们将介绍Nginx + Keepalived和 LV ...

  4. nginx+keepalived双主高可用负载均衡

    实验环境及软件版本:CentOS版本: 6.6(2.6.32.-504.el6.x86_64)nginx版本: nginx-1.6.3keepalived版本:keepalived-1.2.7 主LB ...

  5. Nginx+keepalived实现负载均衡

    Nginx的优点是: 1.工作在网络的7层之上,可以针对http应用做一些分流的策略,比如针对域名.目录结构,它的正则规则比HAProxy更为强大和灵活,这也是它目前广泛流行的主要原因之一,Nginx ...

  6. nginx+keepalived实现nginx双主高可用的负载均衡

    http://kling.blog.51cto.com/3320545/1253474 一.前言: 在互联网上面,网站为用户提供原始的内容访问,同时为用户提供交互操作.提供稳定可靠的服务,可以给用户带 ...

  7. 企业Nginx+Keepalived双主架构案例实战

    通过上一次课程的学习,我们知道Nginx+keepalived主从配置,始终有一台服务器处于空余状态,那如何更好的利用起来呢,我们需要借助Nginx+keepalived双主架构来实现,如下图通过改装 ...

  8. nginx+keepalived高可用及双主模式

    高可用有2中方式. 1.Nginx+keepalived 主从配置 这种方案,使用一个vip地址,前端使用2台机器,一台做主,一台做备,但同时只有一台机器工作,另一台备份机器在主机器不出现故障的时候, ...

  9. Nginx系列篇四:Nginx+keepalived搭建一个高可用的双机双主热备

    建议:先阅读Nginx+keepalived主从配置,因为此篇是接着上篇开始的 上一篇我们简单的介绍了主从配置及其缺点,我们看一下双主热备配置: 2台Nginx+keepalived互为主备,各自绑定 ...

随机推荐

  1. Spring Boot 集成 Swagger生成接口文档

    目的: Swagger是什么 Swagger的优点 Swagger的使用 Swagger是什么 官网(https://swagger.io/) Swagger 是一个规范和完整的框架,用于生成.描述. ...

  2. C#进阶系列——WebApi异常处理解决方案

    阅读目录 一.使用异常筛选器捕获所有异常 二.HttpResponseException自定义异常信息 三.返回HttpError 四.总结 正文 为什么说是实践?因为在http://www.asp. ...

  3. Snort Rule Infographic

    Snort Rule Infographic Official Documentation Snort FAQ  Snort Team / Open Source Community Snort Us ...

  4. 基于【 建造者模式】一 || 网关zuul过滤器封装

    一.springcloud的zuul网关拦截 1.黑名单拦截 2.参数验签 3.Api接口权限验证 二.网关拦截实现方式 1.继承ZuulFilter方法,实现业务逻辑 @Component @Slf ...

  5. iOS - 图片模糊效果实现

    下面给大家介绍图片模糊效果的三种方法 第一种使用Core Image进行模糊 - (UIImage *)blurryImage:(UIImage *)image withBlurLevel:(CGFl ...

  6. VUE 元素拖拽、移动

    元素拖拽 作者:一粒尘土 时间:2019-10-30 使用范围:两个元素位置交换,移动元素到指定位置 涉及函数 属性 解释 draggable 是否允许元素进行拖拽 dragstart 拖拽开始触发的 ...

  7. Java原子操作类汇总(2)

    当程序更新一个变量时,如果是多线程同时更新这个变量,可能得到的结果与期望值不同.比如:有一个变量i,A线程执行i+1,B线程也执行i+1,经过两个线程的操作后,变量i的值可能不是期望的3,而是2.这是 ...

  8. Vue指令之`v-model`和`双向数据绑定

     v-bind 只能实现数据的单向绑定,从 M 自动绑定到 V, 无法实现数据的双向绑定 <input type="text" v-bind:value="msg& ...

  9. Linux 之 搜索

    locate - 文件名搜索命令 用于查找文件 格式为:locate 文件名 该命令用于查找符合条件的文件,它会去保存文件与目录名称的数据库内,查找合乎范本样式条件的文件或目录. 因为该命令是直接在数 ...

  10. Sqlserver2008[索引]

    SQL索引有两种:聚集索引.非聚集索引 目的:提高sqlserver 系统的性能,加快数据的查询速度与减少系统的响应时间 注意点:一个表只能有一个聚集索引,但可以有多个非聚集索引 索引的存储机制: 聚 ...