uwsgi支持http长链接
http1.1支持长链接,而http1.0不支持,所以,在切换http版本号或者升级服务端版本时候,尤其要注意这个造成的影响。
当客户端以http1.1长链接方式连接服务端时,服务端如果不支持1.1,客户端会进行协议降级,用1.0通信,即使用短连接,此时服务端可以正常提供服务;
一旦服务端http版本由于某种原因切换到1.1,则长链接就会生效,如果服务端不支持长链接,则就会造成频繁的502发生;
因为,短连接在服务端return后就会向客户端发一个reset消息,客户端就会切断链路,如果客户端认为是长链接,就会复用该通道,此时reset,会造成内核态的数据被清空,造成数据丢失,表现为502;
如果发现http1.0正常,1.1会经常出现502,则可以考虑此种可能。
附一个检测长链接的脚本:
def query():
i = 2000
conn = httplib2.HTTPConnectionWithTimeout("*.*.*.*", port, timeout=60)
while i > 0:
headers = {
'content-type': 'application/json',
'accept': 'application/json',
'Connection': 'Keep-Alive',
}
conn.request('GET', '***', headers=headers)
response = conn.getresponse()
resp_status = str(response.status)
rsp = response.read()
print rsp
status_ok_list = [HTTP_200_OK, HTTP_201_CREATED, HTTP_204_NO_CONTENT, HTTP_202_ACCEPTED]
if resp_status not in status_ok_list:
print 'get error rsp, resp_status is %s' % resp_status
i -= 1
django1.11之前,不支持http 1.1,因为不会自动添加Content_Length,但1.1后会,所以,1.1后是可以支持1.1的,一般情况下,我们配置uwsgi是采用短连接的方式,即,http_socket = :8000或socket = 0.0.0.0:8000,protocol = http;此种配置不支持长链接,如要支持长链接,需要使用http11_soscket = :8000,http-keepalive = true,具体配置如下:
[uwsgi]
http11-socket = :8000
http-keepalive = true
master = true
hara-kiri = 180
chdir = /home/test_server
manage-script-name = true
mount = /client=/home/test_server/test/wsgi.py
processes = 4
threads = 40
pidfile = /usr/local/bin/uwsgi.pid
daemonize = /home/test_server/logs/uwsgi.log
buffer-size = 32768
listen = 1024
reload-on-rss = 1024
cheaper = 2
cheaper-initial = 2
die-on-term = true
py-tracebacker = /tmp/tbsocket.
log-maxsize = 50000000
uwsgi支持http长链接的更多相关文章
- 支持 gRPC 长链接,深度解读 Nacos 2.0 架构设计及新模型
支持 gRPC 长链接,深度解读 Nacos 2.0 架构设计及新模型 原创 杨翊(席翁) 阿里巴巴云原生 2020-12-28
- python+uwsgi导致redis无法长链接引起性能下降问题记录
今天在部署python代码到预生产环境时,web站老是出现redis链接未初始化,无法连接到服务的提示,比对了一下开发环境与测试环境代码,完全一致,然后就是查看各种日志,排查了半天也没有查明是什么原因 ...
- 微信公众号开发C#系列-10、长链接转短链接
1.概述 短网址的好处众多,便于记忆,占用字符少等,现在市面上出现了众多的将长网址转变为短网址的方法,但是由于他们都是小的公司在幕后运营,所以很不靠谱,面对随时关闭服务的可能,这样也导致我们将转换好了 ...
- PHP实现新浪长链接转化成短链接API
我们经常收到类似于这样的短信(如下图),发现其中的链接并不是常规的网址链接,而是个短小精悍的短链接,产品中经常需要这样的需求,如果在给用户下发的短信中是一个很长的连接,用户体验肯定很差,因此我们需要实 ...
- 长链接转换成短链接(iOS版本)
首先需要将字符串使用md5加密,添加NSString的md5的类别方法如下 .h文件 #import <CommonCrypto/CommonDigest.h> @interface NS ...
- android 实现与服务器的长链接 方式
http://blog.csdn.net/coffeeco/article/details/13276437 这边文章主要看服务端,使用tomcat7以上实现服务端的接收消息以及消息发送 http: ...
- mariadb 长链接时间限制导致队列消费进程崩溃
项目是一个数据同步项目,线下Android客户端把本地sqllite数据提交到云端队列,php做守护进程消费队列,以同步数据.初测没有问题,可是时不时出现诡异的崩溃,因为设置了错误邮件报警,发现错误代 ...
- 纯Socket(BIO)长链接编程的常见的坑和填坑套路
本文章纯属个人经验总结,伪代码也是写文章的时候顺便白板编码的,可能有逻辑问题,请帮忙指正,谢谢. Internet(全球互联网)是无数台机器基于TCP/IP协议族相互通信产生的.TCP/IP协议族分了 ...
- django模型层优化(关联对象) 懒加载和预加载 +长链接
懒加载 存在于外键和多对多关系不检索关联对象的数据调用关联对象会再次查询数据库 问题根源 查看django orm的数据加载,两次. 查询user,查询menu 预加载的方法 预加载单个关联对象--s ...
随机推荐
- Linux shell - 除法保留小数点
我想实现 举例:1/3=0.33得到0.33, 尝试过bc 只能得到.33,没有0了, linux 下的shell脚本,1和3是变量$a和$b,并能指定小数点后的位数, 方法1: $> res= ...
- C#实现读取指定盘符硬盘序列号的方法
文章主要介绍了C#实现读取指定盘符硬盘序列号的方法,涉及C#针对硬件属性的相关操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了C#实现读取指定盘符硬盘序列号的方法.分享给大家供 ...
- Latex常用公式整理
目录 常用 常用数学公式 常用希腊字母 说明:博客园中的Latex编辑是以$ latex公式 $,为边界. 1.常用 描述 Latex公式 表达式 下标 x_2 x2 上标 x^2 x2 分数 \f ...
- (转)使用NMAP工具扫描端口
原文:http://www.linuxde.net/2013/02/12354.html nmap 是一个用于网络探索或安全评测的工具.它支持 ping 扫描(判定哪些主机在运行),多端口扫描技术(判 ...
- tomcat7源码包编译安装
tomcat/:作用解析jsp程序.先安装jdk容器.1.下载jdk, wget http://download.oracle.com/otn- pub/java/jdk/8u131- b11/d54 ...
- robot framework UI自动化之登录
前面已写环境的搭建,接下来就可以直接进行UI自动化的编写工作了 目录 1.准备工作 2.了解定位 3.一个登录案例 1.准备工作 第一步:需要使用chrome浏览器来测试,因此首先要有一个驱动,下载好 ...
- Cloudera-JDBC-Driver-for-Impala
Cloudera-JDBC-Driver-for-Impala-Install-Guide-2-5-5.pdf https://github.com/FlowerBirds/flowerbirds.g ...
- ARTS-3
ARTS的初衷 Algorithm:主要是为了编程训练和学习.每周至少做一个 leetcode 的算法题(先从Easy开始,然后再Medium,最后才Hard).进行编程训练,如果不训练你看再多的算法 ...
- hibernate 2 多对多映射
一.实体类 1.Classes.java package cn.gs.wwg.entity; import java.util.Set; public class Classes { private ...
- LeetCode算法题-Shortest Distance to a Character(Java实现)
这是悦乐书的第321次更新,第343篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第191题(顺位题号是821).给定字符串S和字符C,返回一个整数数组,表示字符串中所有 ...