Node.js环境在linux上的部署教程

  • Post category:Linux

下面是Node.js环境在Linux上的部署教程:

环境要求

  • 操作系统:Linux(本教程以Ubuntu为例,其他Linux系统也适用)
  • 安装了Node.js和NPM(如果您还没有安装,请参考教程《在Ubuntu上安装Node.js和NPM》

步骤说明

1. 更新软件源并升级系统

在终端中输入以下命令,更新软件源并升级系统:

sudo apt-get update && sudo apt-get upgrade

2. 安装pm2管理器

输入以下命令,安装pm2(用于管理Node.js应用程序的进程):

sudo npm install pm2 -g

3. 创建应用程序文件夹

输入以下命令,创建一个名为myapp的文件夹,用于存放Node.js应用程序的文件:

mkdir myapp
cd myapp

4. 创建Node.js的简单示例应用程序

输入以下命令,创建一个简单的“Hello, World!”应用程序:

echo "console.log('Hello, World!');" > index.js

5. 启动Node.js应用程序

输入以下命令,启动myapp文件夹中的Node.js应用程序:

pm2 start index.js

6. 运行示例应用程序

在浏览器中输入以下地址:http://localhost:3000,页面应该显示“Hello, World!”。

7. 设置Node.js应用程序开机自启动

输入以下命令,将Node.js应用程序添加到系统服务列表,以实现开机自启动:

pm2 startup systemd

输入后会提示执行一个命令,如下:

sudo env PATH=$PATH:/usr/bin /usr/local/lib/node_modules/pm2/bin/pm2 startup systemd -u username --hp /home/username

按照给出的提示执行命令,其中username是您的用户名。

8. 保存应用程序列表

输入以下命令,将当前正在运行的所有Node.js应用程序列表保存到磁盘中:

pm2 save

至此,Node.js环境在Linux上的部署教程就完成了。

示例说明

示例1:创建一个使用Express框架的Node.js应用程序

以下是创建一个使用Express框架的Node.js应用程序的示例代码:

mkdir myapp
cd myapp
npm init -y
npm install express
echo "const express = require('express');const app = express();app.get('/', (req, res) => {res.send('Hello, World!');});app.listen(3000, () => {console.log('Example app listening on port 3000!');});" > index.js

以上命令会创建一个名为“myapp”的文件夹,在其中使用npm init初始化一个Node.js工程,然后安装Express框架,最后在index.js文件中编写一个简单的Express应用程序。

示例2:使用Nginx反向代理Node.js应用程序

以下是使用Nginx反向代理Node.js应用程序的示例配置:

sudo apt-get install nginx
sudo nano /etc/nginx/sites-available/myapp

输入以下内容:

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://localhost:3000;
        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;
  }
}

接着将配置文件链接到sites-enabled目录:

sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/

重新启动Nginx服务:

sudo systemctl restart nginx

至此,通过example.com访问Nginx将反向代理到Node.js应用程序。