如何使用像 apache 或 iis 这样的节点 js
how to work with node js like apache or iis
我是 node js 的新手,正在观看教程。但是我对部署节点应用程序有点困惑。
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');
这是一个服务器文件代码。我是运行这个命令:%节点example.js
这是在控制台上工作...
但其他平台包含管理区,(Php、IIS、Tomcat)。 www 文件夹包含应用程序文件。 运行宁服务后台。我们更改代码并保存,但不重启服务。
我们在 node js 平台的 js 文件中指定所有内容。 运行 它来自控制台。我无法理解 运行 宁和部署逻辑。
如果我有 linux 服务器或 windows 服务器,我应该为每个应用程序打开终端和 运行 应用程序吗?如果我关闭终端,我的应用程序会停止吗?
在经典的 PHP 设置中,Web 服务器与应用程序是分开的。
设置如下所示:
[browser/client] => [apache/mod_php] => [index.php]
对于节点,情况有所不同,因为网络服务器是应用程序的一部分。所以你的设置看起来像这样:
[browser/client] => [node server.js]
那么,这对部署意味着什么?
通常这意味着,您需要一个主管来启动您的应用程序并在它崩溃时重新启动它。当您复制新版本的应用程序时,您只需使用主管的重启机制。
一些管理员甚至在注意到应用程序代码更改时自动重启,这类似于 PHP 的更改和重新加载工作流程。
您可以使用的一小部分主管如下:
但是还有很多选择。
如果您从服务器上的终端启动您的应用程序,它通常只会 运行 直到您终止终端会话。当服务器重新启动时(可能是因为电源或硬件故障),您必须手动重新启动您的应用程序。因此,主管应该是
- Windows: 配置为服务 (Auto start node.js server on boot)
- Linux:我会简单地使用 Linux 发行版的包管理安装 supervisord 并将其配置为启动节点应用程序。或者,您可以连接到发行版的初始化系统(创建一个初始化脚本)。不同的发行版通常有不同的初始化系统。
此外,如果您需要
- 多个应用程序运行在一台服务器上,偶数节点和PHP
- 需要大多数网络服务器的一些内置行为,例如提供静态内容、缓存、gzip、速率限制、SSL 终止等。
您肯定需要 reverse proxy
在您的应用程序和客户端之间。
设置如下所示:
/=> [apache/mod_php] => [index.php]
[browser/client] => [reverse proxy] => [node server1.js]
\=> [node server2.js]
大多数网络服务器也可以配置为充当反向代理。还有专门的反向代理。
我是 node js 的新手,正在观看教程。但是我对部署节点应用程序有点困惑。
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');
这是一个服务器文件代码。我是运行这个命令:%节点example.js
这是在控制台上工作...
但其他平台包含管理区,(Php、IIS、Tomcat)。 www 文件夹包含应用程序文件。 运行宁服务后台。我们更改代码并保存,但不重启服务。
我们在 node js 平台的 js 文件中指定所有内容。 运行 它来自控制台。我无法理解 运行 宁和部署逻辑。
如果我有 linux 服务器或 windows 服务器,我应该为每个应用程序打开终端和 运行 应用程序吗?如果我关闭终端,我的应用程序会停止吗?
在经典的 PHP 设置中,Web 服务器与应用程序是分开的。 设置如下所示:
[browser/client] => [apache/mod_php] => [index.php]
对于节点,情况有所不同,因为网络服务器是应用程序的一部分。所以你的设置看起来像这样:
[browser/client] => [node server.js]
那么,这对部署意味着什么?
通常这意味着,您需要一个主管来启动您的应用程序并在它崩溃时重新启动它。当您复制新版本的应用程序时,您只需使用主管的重启机制。
一些管理员甚至在注意到应用程序代码更改时自动重启,这类似于 PHP 的更改和重新加载工作流程。
您可以使用的一小部分主管如下:
但是还有很多选择。
如果您从服务器上的终端启动您的应用程序,它通常只会 运行 直到您终止终端会话。当服务器重新启动时(可能是因为电源或硬件故障),您必须手动重新启动您的应用程序。因此,主管应该是
- Windows: 配置为服务 (Auto start node.js server on boot)
- Linux:我会简单地使用 Linux 发行版的包管理安装 supervisord 并将其配置为启动节点应用程序。或者,您可以连接到发行版的初始化系统(创建一个初始化脚本)。不同的发行版通常有不同的初始化系统。
此外,如果您需要
- 多个应用程序运行在一台服务器上,偶数节点和PHP
- 需要大多数网络服务器的一些内置行为,例如提供静态内容、缓存、gzip、速率限制、SSL 终止等。
您肯定需要 reverse proxy
在您的应用程序和客户端之间。
设置如下所示:
/=> [apache/mod_php] => [index.php]
[browser/client] => [reverse proxy] => [node server1.js]
\=> [node server2.js]
大多数网络服务器也可以配置为充当反向代理。还有专门的反向代理。