【Flask、nginx、JQuery】超时问题502

背景

最近用flask做了个接口,功能主要是使用getssl用来申请letsencrypt免费证书,并将其功能嵌入进公司的CMDB系统,可以通过一键点击来进行证书的申请,添加TXT域名解析,获得证书文件,将证书文件自动推入到git库等待使用,等功能。
由于申请证书过程繁琐,时间较长,每次发起请求后,第60s必定返回一个502的错误结果,由于我的请求流程是

ajax --> 本地python request请求 --> nginx(反向代理)--> uwsgi部署的flask api

于是我在所有流程中都增加了timeout,我这里设置了300s,你们可以根据情况自己设置合适的超时时间。
1、Ajax

$.ajax(
    {
        type: 'post',
        url: "{% url 'get_ssl' %}",
        data: {"domain": domain},
        timeout: 300000, //这里设置超时时间,单位是毫秒
        success: function(result) {
            if (result['code'] === 500){
                ssl_p.text("")
                alert(result['message']);
            }
            else {
                ssl_p.text(result['message']);
                ssl_p.css('color', 'green');
                access_img.show()
            }
        }
    }
)

2、python request

msg = requests.post(url=url, headers=headers, data=data, timeout=300)

3、nginx

proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;

4、uwsgi

[uwsgi]
master = true
http = :6666
chdir = /root/
wsgi-file = /root/get_ssl.py
callable = app
processes = 4
vacuum = true
pidfile = /var/run/uwsgi.pid
daemonize = /var/log/uwsgi.log
http-timeout=300
socket-timeout=300

uwsgi可以根据你自己的配置情况来选择配置http-timeout还是socket-timeout,这里都配上也不影响。

由此解决了超时请求的问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值