欢迎来到夜的世界

莫听穿林打叶声,何妨吟啸且徐行。竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生.料峭春风吹酒醒,微冷,山头斜照却相迎。回首向来萧瑟处,归去,也无风雨也无晴。
扩大
缩小

nginx的负载均衡

    nginx负载均衡概述     

Web服务器,直接面向用户,往往要承载大量并发请求,单台服务器难以负荷,我使用多台WEB服务器组成集群,前端使用Nginx负载均衡,将请求分散的打到我们的后端服务器集群中,
实现负载的分发。那么会大大提升系统的吞吐率、请求性能、高容灾

Nginx要实现负载均衡需要用到proxy_pass代理模块配置

Nginx负载均衡与Nginx代理不同地方在于

Nginx代理仅代理一台服务器,而Nginx负载均衡则是将客户端请求代理转发至一组upstream虚拟服务池

Nginx可以配置代理多台服务器,当一台服务器宕机之后,仍能保持系统可用。

     实验        

    1 . 关闭防火墙      

iptables -F
sed  -i 's/enforcing/disabled/' /etc/selinux/config

systemctl stop firewalld
systemctl disable firewalld

 

     2 . 准备服务器      

nginx1      192.168.13.121   # 作为nginx负载均衡器                只要我访问这个负载均衡器,查看页面的结果,到底是来自于

nginx2      192.168.13.24      # web服务,提供一个页面        

nginx3     192.168.13.79     # web服务,提供一个页面 

 

    3 . 配置服务器       

     先配置两个nginx  web页面       

192.168.13.24   : 
# 准备一个   index.html  写入  你好,我是192.168.13.24机器
    vim /opt/nginx112/conf/nginx.conf  #先查看
    vim /opt/nginx112/html/index.html   # 编辑页面

192.168.13.79    :
# 准备一个    index.html 写入        老了老弟,我是192.168.13.79
    vim /opt/nginx112/conf/nginx.conf  #先查看
    vim /opt/nginx112/html/index.html   # 编辑页面

 然后启动两个nginx web服务器 

[root@localhost opt]# nginx

 

    配置nginx负载均衡器   192.168.13.121机器上   

# 修改配置 nginx.conf 
[root@localhost opt]#  vim /opt/nginx112/conf/nginx.conf

在http里面.server{} 上面 写入如下内容 :

    upstream s15webserver  {    #负载均衡池
    ip_hash;
    server 192.168.13.79 ;
    server 192.168.13.24 ;
    }
#  然后在虚拟主机中添加 反向代理配置,将用户的请求,直接转发给 负载均衡池中的服务器

server {
        listen       80;
        #当我的请求来自于 192.168.13.121时,走这>个虚拟主机
        server_name  192.168.13.121;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;
        #核心配置,就在这,一条proxy_psss参数即可
        location / {
          proxy_pass http://s15webserver;   #负载均衡池
            #root   html;
            #index  index.html index.htm;
        }
  

 

   负载均衡池解释  :      

定义一个负载均衡池,负载均衡的算法有
调度算法      概述
轮询        #按时间顺序逐一分配到不同的后端服务器(默认)
weight       #加权轮询,weight值越大,分配到的访问几率越高
ip_hash      #每个请求按访问IP的hash结果分配,这样来自同一IP的固定访问一个后端服务器
url_hash      #按照访问URL的hash结果来分配请求,是每个URL定向到同一个后端服务器
least_conn    #最少链接数,那个机器链接数少就分发

1.轮询(不做配置,默认轮询)

2.weight权重(优先级)

3.ip_hash配置,根据客户端ip哈希分配,不能和weight一起

 例 : 

weight权重 

upstream django {
       server 10.0.0.10:8000 weight=5;
       server 10.0.0.11:9000 weight=10;#这个节点访问比率是大于8000的
}

ip_hash 

每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器
upstream django {
    ip_hash;
       server 10.0.0.10:8000;
       server 10.0.0.11:9000;
}

 backup 

在非backup机器繁忙或者宕机的时候,请求backup机器,因此机器默认压力最小 

upstream django {
       server 10.0.0.10:8000 weight=5;
       server 10.0.0.11:9000;
       server node.oldboy.com:8080 backup;
}

 

       启动负载均衡器的nginx 服务      

[root@localhost opt]#  nginx 

 在客户端windows中测试访问,负载均衡器  192.168.13.121 ,反复刷新 , 查看请求分发的结果 

 

 

posted on 2019-01-05 11:46  二十四桥_明月夜  阅读(218)  评论(0编辑  收藏  举报

导航