在CentOS上部署Node.js應用涉及幾個步驟,包括安裝Node.js、設置環境變量、上傳應用代碼、安裝依賴項、配置Nginx反向代理等。以下是一個詳細的步驟指南:
首先,你需要安裝Node.js。你可以使用NodeSource提供的Node.js二進制分發庫來安裝特定版本的Node.js。
添加NodeSource倉庫:
curl -sL https://rpm.nodesource.com/setup_14.x | sudo bash -
安裝Node.js:
sudo yum install -y nodejs
驗證安裝:
node -v
npm -v
為了確保Node.js應用能夠正常運行,你可能需要設置一些環境變量。你可以在/etc/profile.d/目錄下創建一個新的腳本來設置這些變量。
創建一個新的環境變量腳本:
sudo vi /etc/profile.d/node.sh
添加以下內容:
export NODE_ENV=production
export PATH=$PATH:/usr/local/bin/node
使環境變量生效:
source /etc/profile.d/node.sh
你可以使用scp、rsync或其他文件傳輸工具將你的Node.js應用代碼上傳到CentOS服務器。
scp上傳文件scp -r /path/to/your/nodejs-app user@your-server-ip:/path/to/deploy
進入你的應用目錄并安裝依賴項:
cd /path/to/deploy/nodejs-app
npm install
為了使你的Node.js應用可以通過HTTP/HTTPS訪問,你需要配置Nginx作為反向代理。
安裝Nginx:
sudo yum install -y nginx
啟動Nginx:
sudo systemctl start nginx
sudo systemctl enable nginx
配置Nginx反向代理:
編輯Nginx配置文件(通常位于/etc/nginx/nginx.conf或/etc/nginx/conf.d/default.conf):
sudo vi /etc/nginx/conf.d/default.conf
添加以下內容:
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 systemctl reload nginx
你可以使用pm2來管理你的Node.js應用,使其在后臺運行并自動重啟。
安裝pm2:
sudo npm install -g pm2
使用pm2啟動你的應用:
pm2 start app.js --name your-app-name
設置pm2開機自啟動:
pm2 startup
pm2 save
確保你的防火墻允許HTTP和HTTPS流量:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
打開瀏覽器并訪問你的域名或服務器IP地址,你應該能夠看到你的Node.js應用。
通過以上步驟,你應該能夠在CentOS上成功部署你的Node.js應用。如果有任何問題,請檢查日志文件以獲取更多信息。