189 8069 5689

负载均衡Nginx配置流程及步骤介绍-创新互联

下文给大家带来负载均衡Nginx配置流程及步骤介绍,希望能够给大家在实际运用中带来一定的帮助,负载均衡涉及的东西比较多,理论也不多,网上有很多书籍,今天我们就用创新互联在行业内累计的经验来做一个解答。

我们提供的服务有:网站设计制作、做网站、微信公众号开发、网站优化、网站认证、二七ssl等。为上千企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的二七网站制作公司

192.168.1.150  VOIP   虚拟IP
192.168.1.151  CNSHANK01  负载均衡1
192.168.1.152  CNSHANK02  负载均衡2
系统:Centos7.4

负载均衡Nginx配置流程及步骤介绍

一、nginx配置(两台nginx配置一模一样,主页设置不同):

  1. 安装:
    yum  -y  install  nginx
  2. 配置:
    vim /etc/nginx/nginx.conf
    user nginx;
    worker_processes auto;
    error_log /var/log/nginx/error.log;
    pid /run/nginx.pid;
    include /usr/share/nginx/modules/*.conf;
    events {
    worker_connections 12800;
    use epoll;
    }
    http {

include mime.types;
default_type  application/octet-stream;
limit_conn_zone $binary_remote_addr zone=addr:10m; #防IP***

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;
include /etc/nginx/mime.types; #协助部分浏览器(如firefox)识别网页文件的类型
default_type     application/octet-stream;
include /etc/nginx/conf.d/*.conf;

client_body_buffer_size 1k;  #指定客户端请求主体缓冲区大小
client_header_buffer_size 1k;  #指定来自客户端请求头的headerbuffer大小
large_client_header_buffers 2 1k; #客户端请求中较大的消息头指定的缓存大数量和大小
server_tokens off;  #禁止在错误页面上显示nginx版本号
client_body_timeout 20;  #设置客户端请求主体读取超时时间
client_header_timeout 20; #设置客户端请求头读取超时时间
gzip  on;

upstream dynamic {  #负载云服务器名dynamic
ip hash;   #采用ip_hash方式
server 192.168.1.154:80;  
server 192.168.1.155:80;
}
server {
listen    80 default_server;
listen    [::]:80 default_server;
server_name  blog.dollarphp.com;
root     /usr/share/nginx/html;
include /etc/nginx/default.d/*.conf;
location / {
proxy_pass http://dynamic;  #负载均衡 代理
limit_conn addr 100;  #指定每个ip最多只允许建立100个连接
limit_rate 500k;     #每个ip大带宽是500k
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504 http_404;

   index index.html index.htm;
   autoindex on;
   autoindex_localtime on;
}
location ~* ^.+.(js|css|htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$ {
   root html;
}
location ~* ^.+.(?![js|css|htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma])$ {
   proxy_set_header Host $host;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
}
error_page 404 /404.html;
   location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
   location = /50x.html {
}

}
}

  1. 设置配置主页测试文件
    cd /usr/share/nginx/html
    cp ./index.html ./index.html.bak
    echo “CNSHANK01-192.168.1.151”>./index.html #在主机192.1681.151上
    echo “CNSHANK02-192.168.1.152”>./index.html #在主机192.1681.152上

  2. 启动
    systemctl  start  nginx
    systemctl  enable  nginx

二、keepalived配置:
I、主服务器配置(192.168.1.151):

  1. 安装:
    yum  -y  install  keepalived
  2. 配置:
    vim /etc/keepalived/keepalived.conf
    ! Configuration File for keepalived
    global_defs {
    }
    vrrp_script chk_nginx {
    script "/etc/keepalived/check.sh"
    interval 1
    weight -15
    }
    vrrp_instance VI_1 {  #  实例,一个vip一个实例
    state MASTER   #标识为主服务
    interface ens33
    virtual_router_id 51  #与从机保持一致即可
    priority 100 #权重 ,高于从机
    advert_int 1
    authentication {   # 认证授权,设置验证信息,两个节点必须一致
    auth_type PASS
    auth_pass 123456
    }
    virtual_ipaddress {  #虚拟ip地址
    192.168.1.150
    }
    track_script { #nginx监控服务
    chk_nginx
    }
    notify_master "/etc/keepalived/notify.sh master"
    notify_backup "/etc/keepalived/notify.sh backup"
    notify_fault "/etc/keepalived/notify.sh fault"
    }

  3. 添加服务检查脚本(check.sh):
    vim /etc/keepalived/check.sh
    #!/bin/bash
    if [ "pgrep  nginx  |  wc  -l" == "0" ] ; then
    exit 1
    else
    exit 0
    fi

  4. 通知脚本(notify.sh):
    vim /etc/keepalived/notify.sh
    #!/bin/bash
    if [ "$1" == "master" ] ; then
    echo "date '+%F %T':切换到主机模式" >> /var/log/keepalived/keepalived.log
    elif [ "$1" == "backup" ] ; then
    /usr/bin/systemctl start nginx
    echo "date '+%F %T':切换到备机模式" >> /var/log/keepalived/keepalived.log
    else
    /usr/bin/systemctl start nginx
    echo "date '+%F %T':宕机" >> /var/log/keepalived/keepalived.log
    fi
  5. 给脚本添加可执行权限:
    chmod  +x  /etc/keepalived/check.sh
    chmod  +x  /etc/keepalived/notify.sh

  6. 创建日志目录:
    mkdir  /var/log/keepalived

  7. 启动:
    systemctl  start  keepalived

II、备服务器配置(192.168.1.152):

  1. 安装:
    yum  -y  install  keepalived

  2. 配置:
    vim /etc/keepalived/keepalived.conf
    ! Configuration File for keepalived
    global_defs {
    }
    vrrp_script chk_nginx {
    script "/etc/keepalived/check.sh"
    interval 1
    weight -15
    }
    vrrp_instance VI_1 {
    state BACKUP   #BACKUP模式
    interface ens33
    virtual_router_id 51   #与主机一致
    priority 99 #比主机小
    advert_int 1
    authentication {   #与主机一致
    auth_type PASS
    auth_pass 123456
    }
    virtual_ipaddress {
    192.168.1.150
    }
    track_script {
    chk_nginx
    }
    notify_master "/etc/keepalived/notify.sh master"
    notify_backup "/etc/keepalived/notify.sh backup"
    notify_fault "/etc/keepalived/notify.sh fault"
    }

  3. 添加服务检查脚本(check.sh):
    vim /etc/keepalived/check.sh
    #!/bin/bash
    if [ "pgrep  nginx  |  wc  -l" == "0" ] ; then
    exit 1
    else
    exit 0
    fi
  4. 通知脚本(notify.sh):
    vim /etc/keepalived/notify.sh
    #!/bin/bash
    if [ "$1" == "master" ] ; then
    echo "date '+%F %T':切换到主机模式" >> /var/log/keepalived/keepalived.log
    elif [ "$1" == "backup" ] ; then
    /usr/bin/systemctl start nginx
    echo "date '+%F %T':切换到备机模式" >> /var/log/keepalived/keepalived.log
    else
    /usr/bin/systemctl start nginx
    echo "date '+%F %T':宕机" >> /var/log/keepalived/keepalived.log
    fi
  5. 给脚本添加可执行权限:
    chmod  +x  /etc/keepalived/check.sh
    chmod  +x  /etc/keepalived/notify.sh
  6. 创建日志目录:
    mkdir  /var/log/keepalived
  7. 启动:
    systemctl  start  keepalived
    三、测试:
    I、正常状态下
    负载均衡Nginx配置流程及步骤介绍

II、停止主服务器:192.168.1.151后测试

  1. 停止从服务器nginx服务,结果可以看到访问虚拟IP时候会从主服务器切到从服务器
    systemctl  stop  nginx
    负载均衡Nginx配置流程及步骤介绍
    负载均衡Nginx配置流程及步骤介绍
    负载均衡Nginx配置流程及步骤介绍
  2. 查看日志:
    tail  /var/log/keepalived/keepalived.log
    主从机日志都显示切到备机模式
    负载均衡Nginx配置流程及步骤介绍
    负载均衡Nginx配置流程及步骤介绍

用域名测试
修改本地hosts文件C:\Windows\System32\drivers\etc\hosts文件加入
192.168.1.150 www.bbs.com
负载均衡Nginx配置流程及步骤介绍
负载均衡Nginx配置流程及步骤介绍

看了以上关于负载均衡Nginx配置流程及步骤介绍,如果大家还有什么地方需要了解的可以在创新互联行业资讯里查找自己感兴趣的或者找我们的专业技术工程师解答的,创新互联技术工程师在行业内拥有十几年的经验了。创新互联官网链接www.yisu.com

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章名称:负载均衡Nginx配置流程及步骤介绍-创新互联
本文来源:http://cdxtjz.cn/article/dicgch.html

其他资讯