微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Nginx:上游过早关闭连接,同时从上游读取响应头

如何解决Nginx:上游过早关闭连接,同时从上游读取响应头

我有一个可通过Nginx反向代理访问的Express API。除了一个使用bcrypt的处理程序外,其他一切都正常。

我的api Nginx配置:

server {
listen 443 ssl;
listen [::]:443 ssl;
server_name api.dev;

ssl_certificate /root/ssl/cert.crt;
ssl_certificate_key /root/ssl/cert.key;

access_log /root/Nginx_logs/api_access.log;
error_log /root/Nginx_logs/api_error.log;

location / {
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_set_header Host $host;
    proxy_pass http://api:8880;

    # Big timeout to test
    proxy_connect_timeout 1200s;
    proxy_send_timeout 1200s;
    proxy_read_timeout 1200s;
}
}

我的快递服务员:

try {
    const hashedPassword = await bcrypt.hash(payload.password,10);
    return handlerResult.ok({});
} catch (err) {
    console.error(err);
}

当我在其他任何路径上请求我的api时,它都可以工作,但是使用此处理程序Nginx时会出现此错误

[error] 29#29: *27 upstream prematurely closed connection while reading response header from upstream

如果我评论const hashedPassword = await bcrypt.hash(payload.password,10);,该错误就会消失。

一开始我以为这是超时错误,但是如您所见,我在Nginx中写了过大的超时。

谢谢您的阅读,如果您有任何问题,请问我:)

PS:对不起,我的英语不好

解决方法

我实际上是通过使用bcryptjs而不是bcrypt来修复的!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。