【发布时间】:2019-11-15 04:30:39
【问题描述】:
我有 nginx 在服务器上运行我的 (node.js/react) 应用程序。但我似乎无法连接到数据库。
在 nginx.conf 文件中,我在 http 中添加了以下内容。
http {
...
server {
listen 80;
server_name localhost;
...}
...}
在 http 部分上方,我有以下内容,
stream {
server {
listen 4000;
proxy_connect_timeout 1s;
proxy_timeout 3s;
proxy_pass stream_mongo_backend;
}
upstream stream_mongo_backend {
server 127.0.0.1:27017;
}
}
我启动 nginx 服务器,应用程序在 localhost 上运行,打开登录页面但我无法登录,因为它仍然没有连接到数据库(mongodb)。 我不确定我的端口号是否错误,或者我是否缺少 nginx.conf 中的某些配置行。
编辑:好的,我之前弄错了。此时我不应该连接到 mongodb。我应该连接到我的应用程序的后端服务器,该服务器将在 4000 运行。所以现在我在 http 中为 /api/ 添加了一个新位置,并将所有请求代理到 4000。不过我还有一个问题。我必须单独运行我的后端服务器才能正常工作。对于前端,我创建了一个文件夹并将所有构建文件放在那里,以便 nginx 从那里启动网络服务器。对后端执行相同操作不会启动服务器。有没有办法让 nginx 也启动后端服务器? 我也可以让前端在没有构建文件的情况下直接运行吗?像 node 会用 npm start 一样吗?
【问题讨论】:
标签: node.js reactjs mongodb nginx