nginx配置 反向代理 限流

环境centos7 yum安装nginx ,生产实践可用

编辑 /etc/nginx/conf.d/default.config

# 负载均衡 根据ip hash 到指定服务(服务挂掉会自动启动其他服务,恢复后又打到原来服务)
upstream backend {
   ip_hash; # 设置为 IP Hash 模式
   server 127.0.0.1:8888  weight=1 max_fails=2 fail_timeout=6s max_conns=1000;
   server 127.0.0.1:8889  weight=1 max_fails=2 fail_timeout=6s max_conns=1000;
}

#限流 基于IP地址 漏桶限流
limit_req_zone $binary_remote_addr zone=mylimit:20m rate=10r/s;
#设置每个ip 并发连接
limit_conn_zone $binary_remote_addr zone=perip:20m;
#设置总共并发连接
limit_conn_zone $server_name zone=perserver:20m;

server {
    listen       80;
    server_name  localhost;
    client_max_body_size 200M;  #文件上传最大设置

    #access_log  /var/log/nginx/host.access.log  main;

    #设置 每个ip并发连接
    limit_conn perip 6;
    #限制nginx 最大连接
    limit_conn perserver 6000;
    #限制并发连接返回状态码
    limit_conn_status 503;

    # 页面返回 ,前端开发打包放这个root【目录】
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    # 开启页面压缩,vue打包js文件过大采用压缩加快访问
    gzip on;
    gzip_min_length 1k;
    gzip_comp_level 9;
    gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
    gzip_vary on;
    gzip_disable "MSIE [1-6]\.";

    error_page   500 502  504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # 代理后端
    location /backend-api {
        #如果后端的服务器返回502、504、执行超时等错误,自动将请求转发到upstream负载均衡池中的另一台服务器,实现故障转移。
        proxy_next_upstream http_502 http_504 error timeout invalid_header;
        #限流
        limit_req zone=mylimit burst=6 nodelay;
        #限流状态码
        limit_req_status 503;
        proxy_pass   http://backend;
        #禁用缓存
        proxy_cache off;
    }
    
    #限流503 返回单独处理
    error_page 503 = /503;
    location /503 {
       default_type application.json;
       add_header Content-Type 'application/json; charset-utf-8';
       return 200 '{"success":false,"errorCode":-1,"data":null,"message":"服务繁忙,请稍后访问"}';
    }

}


  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值