阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Nginx负载均衡配置与健康状况检查

147次阅读
没有评论

共计 2564 个字符,预计需要花费 7 分钟才能阅读完成。

Nginx 负载均衡简单配置

准备三台虚拟机来做这个实验:

172.16.100.6        web 服务器
172.16.100.7        web 服务器
172.16.100.106    负载均衡服务器

首先三台电脑装好 nginx 软件:
向 web 服务器中放入测试文件:
<html>   
<head>   
<title>Welcome to nginx!</title>   
</head>   
<body bgcolor=”white” text=”black”>   
<center><h1>Welcome to nginx! 172.16.100.6</h1></center>   
</body>   
</html>

配置负载均衡服务器:
vi /usr/local/nginx/conf/nginx.conf
 
user nginx nginx;worker_processes  1;
 
events {
    worker_connections  1024;
}
 
http {
    include      mime.types;
    default_type  application/octet-stream;   
    sendfile      on;
    keepalive_timeout  65;
    upstream webservs {
        server 172.16.100.6 weight=1;
        server 172.16.100.7 weight=1;
    }
     
    server {
        listen    8083;
        server_name  localhost;
        index index.html index.htm index.php; 
        location / {
            proxy_pass webservs;
          proxy_set_header X-Real-IP $remote_addr;
        }
                 
        error_page  500 502 503 504  /50x.html;
        location = /50x.html {
            root  html;
        }
    }
}

拓展:
要在 server 之外定义 upstream ,upstream 可以定义多个名称,但每一个 upstream 都要有自己独立的名称
upstream 里有很多的子指定,其中 server 用来定义每一个后端服务器; 每一个后端还可以传递很多参数,weight 权重,没有权重为 0,不做负载均衡的,权重一样就轮调,权重不一样实现加权轮调,还可以实现端口映射; 定义 server 时只能定义名称或是 IP 地址,不能使用协议 http。

 upstream backend {
    server backend1.example.com weight=5;
    server backend2.example.com:8080;
    server unik:/tmp/backend3;
}
server{
    location / {
        proxy_pass http://backend;    // 反向代理不是某些主机,而是 upstream 定义的名称,,由 upstream 来实现负载均衡功能
    }
}

 

mkdir -p web/errorpages
vi web/errorpages/index.html
sorry!…….

当两台后端服务器挂掉,就会使用本机的 sever 访问的页面是 sorry

拓展:
定义 upstream 中 server 指令语法如下:
        server address [parameters]
        关键字 server 必选。
        address 也必选,可以是主机名、域名、ip 或 unix socket,也可以指定端口号。
        parameters 是可选参数,可以是如下参数:server address [parameters]

weight = NUMBER    权重

max_fails = NUMBER    最多错误几次

fail_timeout = TIME      最多错误迟疑多长时间,不确定默认 10s

down    表示当前 server 已停用
backup 表示当前 server 是备用服务器,只有其它非 backup 后端服务器都挂掉了或者很忙才会分配到请求。
max_failsfail_timeout一般会关联使用,如果某台 server 在 fail_timeout 时间内出现了 max_fails 次连接失败,那么 Nginx 会认为其已经挂掉了,从而在 fail_timeout 时间内不再去请求它,fail_timeout 默认是 10s,max_fails 默认是 1,即默认情况是只要发生错误就认为服务器挂掉了,如果将 max_fails 设置为 0,则表示取消这项检查。

下面关于 Nginx 的文章您也可能喜欢,不妨参考下:

CentOS 7.2 下编译安装 PHP7.0.10+MySQL5.7.14+Nginx1.10.1  http://www.linuxidc.com/Linux/2016-09/134804.htm

Nginx 实现集群的负载均衡配置过程详解 http://www.linuxidc.com/Linux/2017-02/140549.htm

Nginx 高级应用 – 负载均衡与 rewrite 规则  http://www.linuxidc.com/Linux/2017-02/140476.htm

CentOS 6.4 安装配置 Nginx+Pcre+php-fpm http://www.linuxidc.com/Linux/2013-08/88984.htm

CentOS 6.8 下源码安装 Nginx 1.11.10  http://www.linuxidc.com/Linux/2017-03/141908.htm

CentOS 7 编译安装 Nginx1.10.2 脚本启动失败解决思路 http://www.linuxidc.com/Linux/2017-01/139794.htm

Nginx 简单实现网站的负载均衡  http://www.linuxidc.com/Linux/2017-02/140351.htm

Nginx 的详细介绍:请点这里
Nginx 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-03/142412.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计2564字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中