Nginx反向代理作负载均衡的高压测试,一些错误

背景

计算所里给大家配发了多台工作机,我给他们都按上了ubuntu linux,拿来做了一个web集群。

我自己的电脑作为主反向代理服务器,将请求转发到同事的web服务器上,从而实现分布式的web请求,提高请求命中率,减少但个服务器压力。

在进行高压测试的时候,以每秒大约10000次请求的JS脚本进行for循环请求,持续10000次,也就是1秒内发送10000次请求左右。

测试的业务逻辑

每一次请求的业务逻辑要实现两次数据库insert操作,一次O(n^2),n小于i等于8的循环,一次数据库update运算,一次redis删除操作,一次redis新增操作。两个控制器,请求有先后依赖关系,先请求接口1,从接口1得到数据后请求2,请求循环为非同步请求,每隔0.1ms发送一次。脚本是JS基于Node.js平台。

一些错误

  • socket hang out 错误,原因是worker_connections过小
  • Internal Server Error 错误,原因是把for循环中sleep等待时间去除了,也就是不限制时间间隔,internal error是控制器(业务逻辑处理)高压,无法response
  • Gateway Timeout 错误,原因是把for循环扩大十倍,10万次循环,间隔还是0.1ms,1秒万次。 gateway timeout是反向代理服务器处理不了这么多代理请求

配置

以下是Nginx的具体配置:

user  www www;

worker_processes  8;
 
error_log logs/error.log;


events
    {
        worker_connections 100000;
    }
 
http
    {
   
		server {
        	listen 80;
        	server_name   localhost 192.168.1.79;
        	location / {
            	proxy_pass http://web;
        	}
        }
    	upstream web  {
        	server localhost:3000 weight=3;
        	server 192.168.1.103:3000 weight=3;
        	server 192.168.1.114:3000 weight=1;
        	server 192.168.1.127:3000 weight=3;
    	}
}

这套配置只能解决问题1,“socket hang out” 问题。上游服务器(实际处理http请求的服务器)有4台,其中一台是本机。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

devilyouwei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值