【问题标题】:How to connect node app to node api with Nginx如何使用 Nginx 将节点应用程序连接到节点 API
【发布时间】:2019-04-27 00:14:03
【问题描述】:

我使用 this tutorial 构建了一个 Node 应用程序。然后我使用this tutorial 构建了一个Node API。该应用程序使用port 4000 上的应用程序连接到API,然后连接到mongodb 以将信息存储在服务器上。

此设置在我的本地计算机上运行良好,但我正在尝试将其部署在数字海洋 droplet 上。我有Nginx 设置来收听主应用程序的port 8080。我可以导航到应用程序。但是当我尝试注册用户并将数据提交到 API 时,我的浏览器中出现以下错误OPTIONS http://localhost:4000/users/register net::ERR_CONNECTION_REFUSED

我怀疑我必须在 Nginx 配置文件中指定一些内容。还是ufw 的问题?任何帮助将非常感激。

【问题讨论】:

    标签: node.js mongodb express nginx ufw


    【解决方案1】:

    错误很明显。该应用程序尝试在localhost:4000 上获取,因此您希望您的网络应用程序的任何访问者都可以在他们自己的计算机上启动该 API。

    更改您的代码以指向服务器的正确主机和端口。

    然后,正如您所猜想的那样,您将不得不创建一个小的 Nginx 配置来告诉他要代理给 APP 的内容以及代理给 API 的内容。

    【讨论】:

    • 好的,谢谢。 API 在同一个 droplet 上运行,因此它仍应作为 localhost 运行。当我在本地测试 API 时,我通过localhost:4000 访问它。那么我的节点应用程序不应该仍然能够在那里连接吗?而且我宁愿不向公众开放 API,而只连接我的应用程序。那么我还需要 Nginx 配置吗?
    • 我给了你答案,从浏览器中的角度代码到本地主机执行的获取请求是错误的。除非您希望任何访问者在他们自己的 PC 上运行 API。将其更改为与您用于连接 web 应用程序相同的 url,添加“/api”作为基本路径,然后返回 nginx 配置。
    • 我花了一点时间来解决这个问题。但现在它是有道理的,我已经启动并运行它。感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 2021-02-04
    • 2019-10-24
    • 1970-01-01
    • 1970-01-01
    • 2021-01-28
    • 1970-01-01
    • 2017-11-29
    • 1970-01-01
    相关资源
    最近更新 更多