zoukankan      html  css  js  c++  java
  • nginx的负载均衡

    根据osi分四层负载均衡和七层负载均衡

    四层:主要是在传输层,传输层能支持到tcp协议的控制,所以对客户端的请求只需要进行tcp/ip的包转发,就可以实现负载均衡

    七层:主要是在应用层,可以实现http协议的改写,头信息的改写,安全应用规则的控制以及转发等的规则,nginx就是七层负载均衡的SLB

    nginx负载均衡实现的原理:使用的是proxy_pass

    把所有端的请求,代理转发到对应后端的服务器上,转发到一组小服务池,upstream server

    配置语法:

    必须是在http以内,server层以外

    例子:

    在/opt/app下面有三个文件夹 code1 code2 code3

    在每个文件夹中都放了不同展示效果的页面

    比如其中一个页面index.html

    <html>
    <head>
                <meta charset="utf-8">
                <title>server1</title>
    </head>
    <body style="background-color:yellow;">
                <h1>server 1</h1>
    </body>
    </html>

    在 /etc/nginx/conf.d/下建了三个conf   server1.conf  server2.conf   server3.conf

    比如其中一个conf中server1.conf

    server{
              listen 8001;
              server_name localhost;
             
              access_log /var/log/nginx/log/server1.access.log main;
    
              location /{
                            root /opt/app/code1;
                            index  index.html index.htm;
                }

    server2.conf

    server{
              listen 8002;
              server_name localhost;
             
              access_log /var/log/nginx/log/server2.access.log main;
    
              location /{
                            root /opt/app/code2;
                            index  index.html index.htm;
                }

    开始配置负载均衡

    新建一个虚拟server 叫:upsream_test.conf

    upstream imooc{
             server  116.62.103.228:8001;     
             server  116.62.103.228:8002;      
             server  116.62.103.228:8003;       
    }
    server{
              listen 80;
              server_name localhost  jeson.peak;
             
              access_log /var/log/nginx/test_proxy.access.log main;
    
              location /{
                            proxy_pass http://imooc;
                            include proxy_params;
                }
    }

    nginx -s reload -c /etc/nginx/nginx.conf

    访问 jeson.peak就可以了 ,默认是轮询的状态

    假设有一个服务挂掉

    iptables -I INPUT -p tcp --dport 8002 -j DROP

    用这个规则关掉8002之后

    就不会显示对应的8002端口对应的页面了

    清理规则 iptables -F

    配置负载均衡调度中的状态

    nginx的轮询策略与加权轮询

    ip_hash是把相同请求转到同一台服务器

    url_hash 是基于url负载均衡的方式

  • 相关阅读:
    PHP生成pdf文档
    PHP将数据库数据批量生成word文档
    三个常用的PHP图表类库
    Javascript——(1)
    python学习HTML之CSS(2)
    python学习HTML之CSS
    python学习之HTML
    python学习之rabbitmq
    第10周15/16/17
    多进程
  • 原文地址:https://www.cnblogs.com/gaosf/p/10232131.html
Copyright © 2011-2022 走看看