首页 > web前端 > 前端问答 > web前端部署nodejs

web前端部署nodejs

王林
发布: 2023-05-23 14:55:07
原创
943 人浏览过

如今,前端开发越来越流行,越来越多的程序员开始涉足这个领域。而同时,需求越来越高的是让前端开发人员在项目中担当更多的职责,其中包括Web前端开发、Node.js后端开发、部署和监视。

在本文中,我们将着重讨论如何部署Node.js服务,在实际生产环境中即可使用。如果你想在Web前端领域有所发展,这将是一个很好的起点。

第一步:准备服务器

安装Node.js之前,我们需要准备一台Ubuntu的服务器。我们将使用这个服务器来运行Node.js应用程序。

对于诸如OpenShift和Heroku的云计算平台,运行Node.js程序非常简单。但是,在本文中,我们将假设您已经获得并配置了一个私有服务器。

第二步:安装Node.js

为了安装Node.js,我们将使用apt包管理器。我们需要安装Node.js和npm(node.js包管理器)。运行以下命令将Node.js安装到您的Ubuntu服务器上:

sudo apt-get update
sudo apt-get install nodejs npm
登录后复制

请注意,有时候您需要分别安装nodejs和nodejs-legacy包:

sudo apt-get update
sudo apt-get install nodejs
sudo apt-get install nodejs-legacy npm
登录后复制

安装完成后,我们可以使用以下命令检查Node.js版本:

nodejs -v
登录后复制

此命令应该打印出您已经安装的Node.js版本号。

第三步:设置防火墙访问

我们需要确保Node.js服务可以从外部访问。通过打开服务器的防火墙端口,让其他服务器可以访问。

默认情况下,Ubuntu服务器带有ufw防火墙。为了允许外部访问您的应用程序,您需要将TCP流量定向到主机。请运行以下命令将端口打开。

sudo ufw allow 8080/tcp
登录后复制

在许多情况下,您需要将端口定向到对您有意义的端口号(即80或443),因为这些端口是Web服务的常见端口。但是,为了简洁起见,我们将在此处选择端口8080。一旦您的应用程序正常运行,则可以将其迁移到该端口。

第四步:编写应用程序

为了部署我们的Node.js应用程序,我们需要编写一个简单的示例应用程序。打开您最喜欢的编辑器,并创建一个名为app.js的文件。在其中添加以下内容:

var http = require('http');

http.createServer(function (request, response) {
  response.writeHead(200, {'Content-Type': 'text/plain'});
  response.end('Hello World
');
}).listen(8080);

console.log('Server running at http://YOUR_IP_ADDRESS:8080/');
登录后复制

其中,YOUR_IP_ADDRESS为您服务器的IP地址。

在您安装了Node.js和npm之后,请键入以下命令以安装http包到您的应用程序中:

npm install http
登录后复制

这些代码意味着什么?我们正在创建一个简单的HTTP服务器,该服务器将在执行时为所有入站流量侦听8080端口。在每个请求中,服务器将响应“Hello World”。

在代码中添加了console.log语句,该语句显示服务器正在使用的IP地址和端口号。当您运行应用程序时,您将在终端中看到此输出。这将帮助您确认应用程序是否正在运行以及访问哪个URL。

第五步:运行应用程序

我们的应用程序已做好准备,现在让我们运行它吧!回到终端,并转到app.js文件所在的目录。在那里,你可以输入以下命令:

node app.js
登录后复制

这将启动您的应用程序。应用程序将在后台运行,并开始在您的服务器的8080端口上运行。浏览器中的IP地址或curl命令中的该地址作为GET请求将向您发送“Hello World”。

第六步:设置永久性

尽管在服务器上使用命令启动应用程序很常见,但在实际生产环境中,您可能会发现自己必须依靠服务器管理工具来自动化和监视进程。

为了使应用程序在服务器重新启动后每次自动启动,您需要创建一个Systemd服务。Systemd是一个许多Linux发行版中使用的初始化系统,它能够同时管理和监视系统进程。

为此,请在Ubuntu中键入以下命令:

sudo nano /etc/systemd/system/YOUR_APP.service
登录后复制

请使用应用程序的实际名称替换YOUR_APP。在文件中添加以下内容:

[Unit]
Description=YOUR_APP
After=syslog.target network.target

[Service]
Environment=NODE_PORT=8080
Type=simple
User=YOUR_USERNAME
ExecStart=/usr/bin/node /path/to/your/app.js
Restart=on-failure

[Install]
WantedBy=multi-user.target
登录后复制

在上面这段代码中,需要以下更改:

-YOUR_APP:应用程序的名称

-NODE_PORT:该应用程序侦听的端口

-YOUR_USERNAME:要在其中运行服务的用户

-/path/to/your/app.js:应用程序文件的实际路径

下一步,您需要让Systemd重新加载并启动自定义服务。键入以下命令以将您的文件复制到正确的目录并重新加载服务:

sudo systemctl daemon-reload
sudo systemctl enable YOUR_APP
sudo systemctl start YOUR_APP
登录后复制

此时,您的应用程序已配置为使用Systemd启动。您可以使用以下命令查看应用程序的状态:

sudo systemctl status YOUR_APP
登录后复制

第七步:运行自定义命令

现在,您可以使用Systemd在服务器重新启动后自动运行应用程序了。但是,您还可以使用Systemd管理来自定义命令,这些命令将在特定时间内运行。

例如,您可以使用以下命令在部署更新期间关闭应用程序:

sudo systemctl stop YOUR_APP
登录后复制

然后,在完成更新后,重新启动应用程序:

sudo systemctl start YOUR_APP
登录后复制

您已经成功地将您的Node.js应用程序部署在实际生产环境中。这是一个很好的起点,让您的开发人员和客户能够访问您的应用程序。

以上是web前端部署nodejs的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板