• Nginx负载均衡配置


    背景

      当一个网站从小到大,访问量逐渐增大现有的服务器已经支撑不住,一般的解决方案就是缓存、加服务器、数据库读写分离、实行负载均衡分布式等等,本人对这些技术方案都没有在项目中具体的实践过,

    但是一直听同事过说起,利用空闲时间自我学习了解下;

    负载均衡

      什么是负载均衡,就是当快要承受不住的时候,又给你一台服务器来分担压力,请求会分配到两台服务器上,两台服务器上部署相同的内容相当于一个分身,可以处理相同的事情;

      Nginx作为负载均衡服务器,用户请求先到达nginx,再由nginx根据负载配置将请求转发至不同的Web服务器

      

      

    Nginx配置文件

     1)  从Nginx官网下载 http://nginx.org/en/download.html 

     2)    安装Nginx,并找到nginx.conf文件(C: ginxconf ginx.conf);

     在http中加入配置:

       加权轮询,按服务器的性能给予权重,本例是1:2分配
      upstream www.woizuqiu.com {  
            server 192.168.1.1:8080  weight=1;
             server 192.168.1.1:8090  weight=2;
         }
    
      ip_hash轮询方法,不可给服务器加权重,nginx会让相同的客户端ip请求相同的服务器
      upstream www.woizuqiu.com {
        server 192.168.1.1:8080;
        server 192.168.1.1:8090 max_fails=fail_timeout=30s ;
         ip_hash;
       }
    根据服务器的本身的性能差别及职能,可以设置不同的参数控制。
     
    down 表示负载过重或者不参与负载
     
    weight 权重过大代表承担的负载就越大
     
    backup 其它服务器时或down时才会请求backup服务器
     
    max_fails 失败超过指定次数会暂停或请求转往其它服务器
     
    fail_timeout 失败超过指定次数后暂停时间
     

    server配置如下: 

    server {
            listen       80;
            server_name  www.woizuqiu.com;
            #charset koi8-r;
            #access_log  logs/host.access.log  main;
            location / {    
                add_header backendIP $upstream_addr;#被转发到的上游服务器地址
                add_header backendCode $upstream_status;#状态码
                proxy_pass http://www.woizuqiu.com;
                proxy_set_header Host $host; 
                proxy_set_header X-Real-IP $remote_addr; 
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;                                     
            } 
        }
    1.查看Nginx版本:
      C: ginx>nginx -v
     
    2.启动Nginx:
      C: ginx>start nginx
      启动Nginx需要占用80端口,常见错误:bind() to 0.0.0.0:8080 failed (10013: An attempt was made to access a socket in a way forbidden by its access permissions),需要把系统的80端口关掉,
      检查端口:netstat -aon | findstr :80  
     
    3.判断Nginx是否启动:
      tasklist /fi "imagename eq nginx.exe"
      
    4.停止:
      C: ginx>nginx.exe -s stop
     
    5.重新载入Nginx:
      C: ginx>nginx.exe -s reload
     
  • 相关阅读:
    用友U8 | 【出纳管理】添加日记账时,为什么日期选不了之前的日期?
    用友U8 | 【总账】结账时提示:该凭证已被别的用户锁定,请稍候在试...
    用友U8 | 【实施导航】实施导航进度条一直显示没完成
    利用Action方法委托重构switch接口
    关于wcf序列化后的压缩示例
    sql常用的命令
    WebBrowser通过cookie自动登录网站
    SqlServer大数据的分区方案
    WebBrowser 登录windows集成验证的网站
    SQL大批量插入数据的方式(多表关联) .
  • 原文地址:https://www.cnblogs.com/amoshu/p/7346806.html
Copyright © 2020-2023  润新知