在 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 應用。選擇哪種方法取決于你的具體需求和偏好。