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应用就够了。
我用 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应用就够了。