zoukankan      html  css  js  c++  java
  • 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
     
  • 相关阅读:
    SD卡测试
    测试人员可能会遇到的问题
    HDU 1024 Max Sum Plus Plus
    HDU 1176 免费馅饼
    HDU 1257 最少拦截系统
    HDU 1087 Super Jumping! Jumping! Jumping!
    poj 1328 Radar Installation
    poj 1753 Flip Game
    HDU 1003 Max Sum
    HDU 5592 ZYB's Premutation(BestCoder Round #65 C)
  • 原文地址:https://www.cnblogs.com/amoshu/p/7346806.html
Copyright © 2011-2022 走看看