Linux部署nodejs服务

最近有一个是nodejs的项目需要部署到服务器,在部署的时候想通过supervisor管理服务,主要是其他服务也是用supervisor管理,后面发现通过supervisor会有环境的问题,就算是添加了环境变量也没用,node项目需要用到ffmpeg,直接运行项目没问题但是通过supervisor启动服务就是访问不了ffmpeg,试了systemd也不行,最后用了pm2来管理服务,发现pm2用起来也挺方便的。

要在 Linux 上部署 Node.js 服务,可以按照以下步骤操作:

1. 安装 Node.js 和 npm

首先,确保你的 Linux 系统已经安装了 Node.js 和 npm(Node.js 的包管理工具)。你可以通过以下步骤来安装它们:

Ubuntu/Debian 系统:

# 更新系统
sudo apt update
# 安装 Node.js 和 npm
sudo apt install nodejs npm

或者,使用 NodeSource 提供的安装脚本来安装最新版本的 Node.js:

# 下载 NodeSource 的安装脚本
curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -
# 安装 Node.js 和 npm
sudo apt install -y nodejs

安装完成后,可以验证版本:

node -v
npm -v

2. 创建 Node.js 项目

创建一个 Node.js 项目并编写服务代码。例如,假设你的项目路径是 /home/user/myapp

# 创建项目目录
mkdir /home/user/myapp
cd /home/user/myapp
# 初始化 Node.js 项目
npm init -y
# 安装所需依赖(例如,Express.js)
npm install express

创建一个简单的 app.js 文件,作为 Node.js 服务的入口:

// /home/user/myapp/app.js
const express = require('express');
const app = express();
const port = 3000;
app.get('/', (req, res) => {
res.send('Hello, world!');
});
app.listen(port, () => {
console.log(`Server running at http://localhost:${port}`);
});

3. 测试 Node.js 服务

在本地启动你的 Node.js 服务,确保它正常运行。

node app.js

打开浏览器,访问 http://localhost:3000,你应该看到 "Hello, world!" 的页面。

4. 使用 pm2 管理 Node.js 服务

为了让 Node.js 服务在后台持续运行并且可以自动重启,你可以使用 pm2 来管理服务。pm2 是一个非常流行的进程管理工具,适合生产环境。

安装 pm2

sudo npm install -g pm2

使用 pm2 启动应用

pm2 start app.js

查看服务状态

pm2 status

设置 pm2 在服务器重启时自动启动

pm2 startup

此命令会输出一行命令,复制并粘贴到终端中运行,设置 pm2 在系统启动时自动启动你的 Node.js 服务。

保存 pm2 配置

pm2 save

5. 配置 Nginx 作为反向代理(可选)

为了更好地处理生产环境中的请求,你可以使用 Nginx 作为反向代理,将请求转发到 Node.js 服务。

安装 Nginx

sudo apt install nginx

配置 Nginx 反向代理

编辑 Nginx 配置文件:

sudo nano /etc/nginx/sites-available/myapp

添加以下内容:

server {
listen 80;
server_name your-domain.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;
}
}

启用配置并重新加载 Nginx:

sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
sudo nginx -t # 测试配置是否正确
sudo systemctl restart nginx

总结:

  • 安装 Node.js 和 npm。
  • 创建一个 Node.js 项目并编写服务代码。
  • 使用 pm2 来管理 Node.js 服务。
  • 配置 Nginx 作为反向代理以处理生产环境中的流量。

注意:该内容由由AIGC提供。

posted @   长空nice  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示