在CentOS上部署Node.js應用可以通過以下幾個步驟來完成:
首先,你需要在CentOS上安裝Node.js。你可以使用NodeSource的二進制分發庫來安裝特定版本的Node.js。
# 添加NodeSource庫
curl -sL https://rpm.nodesource.com/setup_14.x | sudo bash -
# 安裝Node.js和npm
sudo yum install -y nodejs
確保你的防火墻允許HTTP/HTTPS流量。
# 啟用firewalld服務
sudo systemctl start firewalld
# 允許HTTP和HTTPS流量
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
創建一個目錄來存放你的Node.js應用。
sudo mkdir -p /var/www/myapp
cd /var/www/myapp
你可以使用scp、rsync或任何其他文件傳輸方法將你的Node.js應用代碼上傳到服務器。
# 使用scp上傳文件
scp -r /path/to/your/local/app root@your_server_ip:/var/www/myapp
在應用目錄中安裝所需的npm包。
cd /var/www/myapp
npm install
如果你的應用需要特定的環境變量,可以在/etc/profile.d/目錄下創建一個腳本來設置這些變量。
sudo nano /etc/profile.d/myapp.sh
添加以下內容:
export NODE_ENV=production
export MY_APP_SECRET=my_secret_key
保存并退出,然后使環境變量生效:
source /etc/profile.d/myapp.sh
你可以使用pm2來管理你的Node.js應用,它提供了進程管理和負載均衡功能。
首先,全局安裝pm2:
sudo npm install pm2 -g
然后,使用pm2啟動你的應用:
pm2 start app.js --name myapp
如果你希望通過Nginx來處理HTTP請求并將它們轉發到你的Node.js應用,可以按照以下步驟配置Nginx。
安裝Nginx:
sudo yum install -y nginx
啟動并啟用Nginx服務:
sudo systemctl start nginx
sudo systemctl enable nginx
配置Nginx反向代理:
sudo nano /etc/nginx/conf.d/myapp.conf
添加以下內容:
server {
listen 80;
server_name your_server_ip;
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 nginx -s reload
使用pm2來監控和管理你的Node.js應用:
# 查看應用狀態
pm2 status
# 查看日志
pm2 logs myapp
# 停止應用
pm2 stop myapp
# 重啟應用
pm2 restart myapp
通過以上步驟,你應該能夠在CentOS上成功部署你的Node.js應用。