node.js - Nginx:nodejs堆栈的内部错误500
问题描述
所以,我使用 nginx nodejs 堆栈让 mailgun 接收入站转发消息,并将消息完美地传递给我的 api。
但是它给来自 nginx 的 mailgun 日志提供了错误 500,我无法从节点 js 发送 response.status(200)。
这是 nginx 错误日志,只是循环。
[info] 16904#16904: *87 SSL_do_handshake() failed (SSL: error:1408F119:SSL routines:ssl3_get_record:decryption failed or bad record mac) while SSL handshaking, client: from.mailgun
[info] 16904#16904: *88 client closed connection while waiting for request, client: 96.126.100.87 [warn] 24803#24803: *1 a client request body is buffered to a temporary file /var/lib/nginx/body/0000000001, client: from.mailgun
[error] 24803#24803: *1 upstream prematurely closed connection while reading response header from upstream, client: from.mailgun
[info] 24803#24803: *1 SSL_write() failed (SSL:) (104: Connection reset by peer) while sending to client, client: from.mailgun
nodejs没有给出任何错误日志,我检查了很多次。
这是我的 ssl nginx 配置,/etc/nginx/nginx.conf
##
# SSL Settings
##
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
这是来自我的服务器块,
listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/my.domain/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/my.domain/privkey.pem; # managed by Certbot
# include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
ssl_prefer_server_ciphers on;
add_header Strict-Transport-Security max-age=15768000;
ssl_stapling on;
ssl_stapling_verify on;
谢谢。
解决方案
推荐阅读
- r - 仅在最后一点之后选择字符串的最后一部分
- android - 用改造安卓上传二进制文件?
- django - 一个 git 存储库,用于 2 个具有不同 PROCFILES 的不同 heroku 应用程序,这可能吗?
- unit-testing - 如何测试以文件夹为输入的 HTTP 函数?
- django - 视图没有返回 HttpResponse 对象。它返回 None 而不是
- github - 有没有办法使用 CircleCI 自定义 Github 检查?
- spring-boot - SpringBoot & Kotlin 可执行jar ClassNotFoundException
- c++ - 错误:'operator*' 不匹配(操作数类型为 'const llvm::DataLayout')
- amazon-ec2 - 管理 EC2 实例启动/关闭/休眠调度程序的最佳实践是什么?
- javascript - { ...obj1, obj2 } 究竟做了什么