Nginx linux 服务器上的 Nodejs Express 应用程序

Nodejs express application on nginx linux server

我用 nodejs express 创建了我的第一个 nodejs 应用程序。 服务器是

var express = require("express");
global.app = express();
require("src/app-modules/common/yamaha/yamaha.controller.api");
app.listen(8080, function() {
console.log("Listening on http://127.0.0.1:8080");
});

在 windows 开发机器上正在工作。 现在我尝试在 Synology NAS 上发布此应用程序。 我在 url 上访问此应用程序://192.168.1.151/YamahaCtrl 我有一个 404 错误。 更新 2:我发现真正的问题是什么:how to configure the nginx server fromn 路由在 yamaha.controller.api 上定义如下:

    app.get("/api/yamaha/getBasicInfo", function (req, res) {
        //do something
    });

我找到了一个nodejs 8 beta包安装到NAS上,现在我有nodejs版本8。但是错误仍然存​​在。

所以 nodejs 应用程序服务器在 localhost:8080 上打开,但是 url 访问是 http://192.168.1.151/YamahaCtrl,在 80。

这意味着问题是如何在 NAS 上配置虚拟主机,以及我应该使用节点服务器上的哪个端口。

更新:问题是:需要在Synology上安装的nginx服务器上配置重定向端口。我找到了这篇文章: https://www.digitalocean.com/community/tutorials/how-to-set-up-a-node-js-application-for-production-on-ubuntu-14-04

我创建配置文件/etc/nginx/sites-available/default:

server {
listen 80;

server_name _;

location / {
    proxy_pass http://127.0.0.1:8080;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
}

}

仍然无法正常工作:html 文件可以访问,但是 api 只能在端口 8080 上使用。

我知道问题出在哪里了:nodejs 服务器也在提供静态文件,但是我对静态文件的配置是错误的。因为开发工作正常,所以我不知道那是错误的。

因此无需在 NAS 上配置任何东西:)。启动nodejs应用就够了。