将nginx +uwsgi+flask架构来搭建web服务。可是发现一个问题,若是http请求达到必定量后,nginx直接返回502。python
大概知道问题应该在nginx和uwsgi上,限制了并发的处理数。nginx
查了nginx uwsgi官方的资料。原来调优有好几个参数,而且系统自己也须要作一些调优web
1.首先先看一下nginx.conf里影响处理的配置。json
user nginx;
worker_processes xx; #能够设置成cpu个数,体验较佳的性能
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
worker_rlimit_nofile 65535; # 最大打开文件数,这个值须要<= worker_connections
events {
worker_connections 65535; # 最大链接数,这个值依赖系统的配置。
}
2.看一下系统的配置sysctl.confflask
net.core.somaxconn = 2048 #定义了系统中每个端口最大的监听队列的长度,这是个全局的参数。默认是128.优化能够根据系统配置作优化
3.uwsgi 的配置优化/etc/uwsgi.d/admin.ini后端
workers = 24 # 并发处理进程数
listen = 65535 # 并发的socket 链

本文介绍了在使用nginx+uwsgi+flask搭建web服务时遇到的502错误问题,分析了问题根源并提供了解决方案。通过调整nginx和uwsgi的配置参数,如worker_processes、worker_connections、listen、net.core.somaxconn等,以及处理超时设置,解决了并发请求时的问题。同时,针对特定接口的性能瓶颈,提出了增加uwsgi listen队列长度、使用UNIX Domain Socket或负载均衡等优化策略。
最低0.47元/天 解锁文章
9046

被折叠的 条评论
为什么被折叠?



