Nodejs在nginx linux服务器上表达应用程序

时间:2017-11-14 09:37:07

标签: node.js redirect nginx port nas

我用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:我发现问题是什么:如何从n配置nginx服务器 路由在yamaha.controller.api上定义,如下所示:

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

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

所以nodejs app服务器在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上可用。

1 个答案:

答案 0 :(得分:0)

我弄清楚问题是什么:nodejs服务器也提供静态文件,但我的静态文件配置错误。因为发展是有效的,那就是为什么我不知道这是错误的。

所以不需要在NAS上配置一些东西:)。启动nodejs应用就足够了。