加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

从django gunicorn nginx安装程序向外部URL发送POST请求

发布时间:2020-12-13 21:24:51 所属栏目:Nginx 来源:网络整理
导读:我正在从在django nginx炮弹上运行的网络应用程序中的方法发送发送请求.在django自己的服务器(使用runserver)上执行时,我没有收到来自相同代码的200个响应的问题. try: response = requests.post(post_url,data=some_data) if response.status_code == OK an

我正在从在django nginx炮弹上运行的网络应用程序中的方法发送发送请求.在django自己的服务器(使用runserver)上执行时,我没有收到来自相同代码的200个响应的问题.

try:
    response = requests.post(post_url,data=some_data)
    if response.status_code == OK and response.content == '':
        logger.info("Request successful")
    else:
        logger.info("Request failed with response({}): {}".format(response.status_code,response.content))
        return response.status_code == OK and response.content == ''
except requests.RequestException as e:
    logger.info("Request failed with exception: {}".format(e.message))
    return False

我在post_url检查了服务器日志,确实是返回200个响应与这个数据.然而,当我将应用程序运行在gunicorn和nginx之后,我无法收到响应(但是请求被发送).代码在try块之后的第一行被卡住,并且gunicorn worker超时(30秒后).

这是post_url上的apache服务器日志:

[14/Sep/2016:13:19:20 +0000] "POST POST_URL_PATH HTTP/1.0" 200 295 "-" "python-requests/2.9.1"

更新:

我忘了提及,这个请求需要不到一秒的时间来执行,所以它不是一个超时问题.配置有问题吗?我有标准的nginx炮弹设置,其中gunicorn被设置为nginx中的proxy_pass.我猜测,因为我在一个nginx代理后面,我应该在从应用程序发送发送请求时做不同的事情?

最佳答案
在我的炮弹设置中,设定工人= 2解决了这个问题.

当我向外部URL发送请求时,外部应用程序将发送一个请求.这个新的请求将占用应用程序中唯一的工作人员.我发出的原始请求是无工作的,所以它被卡住了.
有2名工作人员,我可以同时发出请求并收到另一个请求.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读