【问题标题】:Using Nginx along with Node-express server使用 Nginx 和 Node-express 服务器
【发布时间】:2017-03-16 17:59:50
【问题描述】:

我开发了一个 MEAN 应用程序并准备托管它。 作为生产托管环境,我选择了 Digital Ocean。 对于部署,我执行了以下操作:

1. Started up a droplet with Ubuntu 
2. Got ready-to-use MEAN image on it.
3. copied my application from local machine onto this droplet (using flightplan)
So far so good.. everything works fine.

但是,我需要使用 https 为应用程序提供服务,因此我需要一个数字证书。

在四处搜索时,我阅读了说安装 NGinx 然后安装 数字证书。有一堆线程我发现很难理解。这主要是因为我对这个新堆栈的了解非常粗略。

此时我想知道,我的快速 http 服务器已经在提供静态文件了。

现在 nginx 在整个等式中将扮演什么角色?我如何将流量从 nginx 路由到 express 应用程序,反之亦然。我真的需要这样做吗?有没有办法用节点安装数字证书??

归根结底,我需要通过 https 提供流量。

我想在我的堆栈中没有太多复杂性的情况下实现这一目标。

有什么建议吗?

【问题讨论】:

  • 你的节点服务器将运行在其他一些端口,而不是 80/443,例如,端口 3000。nginx 将监听 80 和 433 上的请求,并将请求从 80 重定向到 443。然后它将反向代理从 433 到 localhost:3000 的所有请求,然后您的节点服务器可以处理不关心 ssl 的请求。
  • 这个答案可能对你有帮助:stackoverflow.com/a/16770780/400654 下面的也是。

标签: node.js nginx digital-ocean


【解决方案1】:

您可以从付费的 dns 提供商处获取 ssl 证书,也可以使用一些实用程序(例如letsencrypt)获取虚拟 ssl 证书。

然后 nginx 将侦听 443 端口,您可以配置 nginx 将请求传递给可能不需要 ssl 证书的节点应用程序。假设您的节点在 3000 上运行。Nginx 会将请求传递到此端口。

这个链接会告诉你怎么做 ===> https://www.digitalocean.com/community/tutorials/how-to-set-up-a-node-js-application-for-production-on-ubuntu-14-04

【讨论】:

    猜你喜欢
    • 2017-03-18
    • 1970-01-01
    • 1970-01-01
    • 2020-04-02
    • 2015-06-26
    • 1970-01-01
    • 2017-04-27
    • 2017-11-03
    • 2017-11-09
    相关资源
    最近更新 更多