【问题标题】:HTTPS connection to API not working Express/Node/Nginx与 API 的 HTTPS 连接不起作用 Express/Node/Nginx
【发布时间】:2020-06-07 06:23:36
【问题描述】:

我有一个 AWS 实例正在运行并使用 certbot 创建了一个证书: 我可以使用浏览器访问https://www.tichutimo.ch/,它会显示默认页面。 有一个配置为http://www.tichutimo.ch:5000/api/users/test 的路由,它只响应一些文本。使用 http 这可以正常工作。 但是当我尝试https://www.tichutimo.ch:5000/api/users/test 时,我在 Firefox 中得到了"SSL_ERROR_RX_RECORD_TOO_LONG"

现在我什至不确定在哪里寻找解决方案:快递?在 Nginx 中? 我在我的快递日志中没有看到任何内容..

使用 curl 我得到curl: (35) error:1400410B:SSL routines:CONNECT_CR_SRVR_HELLO:wrong version number

【问题讨论】:

    标签: node.js express nginx amazon-ec2


    【解决方案1】:

    感谢@o-jones 的评论。

    1. 我不得不从请求中删除端口
    2. 如下所示,我必须添加带有 proxy_pass 的行

      location / {
             proxy_pass       http://localhost:5000;
      }
      

    【讨论】:

    • 我很高兴它是如此简单。我将 nginx 用于 websockets,它要复杂得多。
    【解决方案2】:

    我猜你想使用 nginx 设置作为反向代理。在该设置中,它应该接受传入的 https 连接(在默认端口 443 上)并在您的情况下通过 http://localhost:5000 将它们传递给您的 nodejs 服务器。这是一个很好的高性能设置:nginx 处理 https 的繁重工作,您的 nodejs 程序可以专用于您的应用程序。

    所以,您的 https 网址不正确。取出端口 5000 引用。像这样。 https://www.tichutimo.ch/api/users/test

    但是,当我在您的网站上尝试时,我得到了 nginx 的 404 页面。您的前门页面显示 nginx 的默认页面。因此,您的 /etc/nginx.conf 似乎没有正确设置来执行反向代理工作。

    'toobz 有很多很好的教程,解释它超出了 Stack Overflow 答案的范围。如果您遇到困难,请再问一个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-29
      • 1970-01-01
      • 1970-01-01
      • 2016-09-09
      • 1970-01-01
      • 2019-07-17
      • 2016-07-01
      相关资源
      最近更新 更多