HTTP正在工作,但HTTPS在具有LAMP堆栈的Nodejs中不工作



我有一个工作网站(https://example.com/(在ubuntu 18 中使用PHP、apache2、MySQL

我确实想创建API(https://example.com/api)使用nodejs和express js。因此,我们已经安装了node.js,并开始在/api(在同一台ubuntu机器上(中制作Nodejs应用程序。我们可以在没有https的情况下轻松访问API(http://example.com/api)但是当我们尝试使用https时(https://example.com/api)它根本不起作用。主网站仍然可以使用https。

我不明白为什么https不适用于/api文件夹,但它适用于整个网站。我尝试了一些其他的解决方案,但对我来说没有任何效果。因为许多解决方案都建议使用Nginx。但我对Nginx一点也不熟悉,我们有很多针对apache2的自定义配置,不知道如何存档。

这是写在/api文件夹内的index.js上的简单代码

app.get('/',function (req, res, next) {
res.json({
'success': {
'message': 'done'
}
});
});

任何帮助都将不胜感激。感谢

编辑:

我尝试了这个问题的答案(在express.js上启用HTTPS(,它正在使用HTTPS,现在我担心,这是实现SSL的正确方式吗?或者我们应该尝试用apache配置文件来完成它

HTTPS应该在您的HTTP服务器Apache2上启用,而不是在NodeJS上。然后,您应该使用proxypass将/api代理到您的应用程序中(它将位于某个端口上——阻止该端口从服务器外部直接通信(。然后,所有客户端都将使用HTTPS连接到Apache2本身,但Apache2将使用与节点的正常连接——因此,您可以为外部使用和用户使用ssl,但节点本身没有过多的开销。

示例:https://httpd.apache.org/docs/2.4/mod/mod_proxy.html

相关内容

  • 没有找到相关文章

最新更新