在 Linux 上部署 Node.js 应用可以通过多种方式实现,以下是一些常见的方法:
PM2 是一个流行的 Node.js 进程管理器,可以帮助你管理和监控 Node.js 应用。
安装 PM2:
npm install pm2 -g
启动应用:
pm2 start app.js --name my-app
查看应用状态:
pm2 status
停止应用:
pm2 stop my-app
重启应用:
pm2 restart my-app
删除应用:
pm2 delete my-app
你可以创建一个 systemd 服务来管理你的 Node.js 应用。
创建 systemd 服务文件:
sudo nano /etc/systemd/system/my-app.service
添加以下内容:
[Unit]
Description=My Node.js App
After=network.target
[Service]
ExecStart=/usr/bin/node /path/to/your/app.js
WorkingDirectory=/path/to/your/app
User=your-user
Group=your-group
Environment=NODE_ENV=production
Restart=always
[Install]
WantedBy=multi-user.target
重新加载 systemd 配置:
sudo systemctl daemon-reload
启动服务:
sudo systemctl start my-app
查看服务状态:
sudo systemctl status my-app
设置开机自启动:
sudo systemctl enable my-app
你可以使用 Nginx 作为反向代理来处理 HTTP 请求并将它们转发到你的 Node.js 应用。
安装 Nginx:
sudo apt update
sudo apt install nginx
配置 Nginx: 编辑 Nginx 配置文件:
sudo nano /etc/nginx/sites-available/my-app
添加以下内容:
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;
    }
}
启用配置: 创建符号链接:
sudo ln -s /etc/nginx/sites-available/my-app /etc/nginx/sites-enabled
测试 Nginx 配置:
sudo nginx -t
重启 Nginx:
sudo systemctl restart nginx
Docker 可以帮助你创建一个隔离的环境来运行你的 Node.js 应用。
安装 Docker:
sudo apt update
sudo apt install docker.io
创建 Dockerfile:
在你的应用目录中创建一个 Dockerfile:
FROM node:14
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["node", "app.js"]
构建 Docker 镜像:
docker build -t my-node-app .
运行 Docker 容器:
docker run -p 3000:3000 my-node-app
查看容器状态:
docker ps
停止容器:
docker stop <container_id>
通过以上方法,你可以在 Linux 上部署你的 Node.js 应用。选择哪种方法取决于你的具体需求和偏好。