溫馨提示×

JS應用在Debian上如何部署

小樊
37
2025-09-30 04:51:48
欄目: 編程語言

1. 更新系統包
在部署前,確保Debian系統的軟件包是最新的,避免兼容性問題:

sudo apt update && sudo apt upgrade -y

2. 安裝Node.js和npm
Node.js是JS應用的運行環境,npm是其包管理器。推薦通過NodeSource倉庫安裝特定版本(如16.x/18.x),或使用NVM(Node版本管理器)管理多版本:

  • NodeSource方式(推薦)
    以安裝Node.js 16.x為例,運行以下命令添加倉庫并安裝:
    curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
    sudo apt install -y nodejs
    
  • NVM方式(適合多版本管理)
    若需切換不同Node.js版本,先安裝NVM,再指定版本:
    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
    source ~/.bashrc
    nvm install 16  # 安裝最新16.x版本
    nvm use 16      # 切換至該版本
    

安裝完成后,驗證版本:

node -v  # 查看Node.js版本
npm -v   # 查看npm版本

3. 上傳JS應用代碼
將本地JS應用(如通過Git克隆或FTP/SFTP上傳)放置到服務器目錄(如/var/www/your-app):

git clone https://github.com/yourusername/your-app.git /var/www/your-app
cd /var/www/your-app

4. 安裝應用依賴
JS應用通常通過package.json管理依賴,進入項目目錄運行以下命令安裝:

npm install
# 若需生產環境精簡依賴,可添加--production參數
npm install --production

5. 配置環境變量
若應用需要敏感配置(如數據庫密碼、API密鑰),建議使用.env文件(需安裝dotenv包)或在服務器環境變量中設置:

  • 創建.env文件(不要提交至版本控制):
    echo "PORT=3000\nDB_HOST=localhost\nDB_USER=root\nDB_PASS=yourpassword" > .env
    
  • package.jsonscripts中引用(如"start": "node -r dotenv/config app.js")。

6. 使用PM2管理應用進程
PM2是Node.js進程管理工具,可實現后臺運行、自動重啟、日志管理等功能:

# 全局安裝PM2
sudo npm install -g pm2
# 啟動應用(假設入口文件為app.js)
pm2 start app.js --name "your-app"
# 保存當前進程列表(系統重啟后自動恢復)
pm2 save
# 設置開機自啟
pm2 startup

查看應用狀態:

pm2 status
# 查看實時日志
pm2 logs your-app

7. 配置Nginx反向代理(可選但推薦)
Nginx可作為反向代理,處理HTTP請求轉發、靜態文件服務及SSL加密,提升應用性能和安全性:

  • 安裝Nginx:
    sudo apt install nginx -y
    
  • 創建Nginx配置文件(如/etc/nginx/sites-available/your-app):
    sudo nano /etc/nginx/sites-available/your-app
    
    添加以下內容(替換your_domain.com為域名/IP,3000為應用端口):
    server {
        listen 80;
        server_name your_domain.com;
        location / {
            proxy_pass http://localhost:3000;  # 轉發至Node.js應用
            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/your-app /etc/nginx/sites-enabled
    sudo nginx -t  # 測試配置語法
    sudo systemctl restart nginx
    

8. 配置防火墻
若服務器啟用了ufw防火墻,需開放HTTP(80)和HTTPS(443)端口:

sudo ufw allow 'Nginx Full'  # 允許HTTP和HTTPS
sudo ufw enable              # 啟用防火墻(若未啟用)

9. 可選:配置HTTPS(推薦)
使用Let’s Encrypt免費獲取SSL證書,加密應用流量:

# 安裝Certbot和Nginx插件
sudo apt install certbot python3-certbot-nginx -y
# 獲取證書并自動配置Nginx
sudo certbot --nginx -d your_domain.com
# 按提示完成驗證(需域名解析至服務器IP)

證書會自動續期,無需手動操作。

10. 驗證部署
打開瀏覽器訪問http://your_domain.com(或IP地址),若看到應用頁面則表示部署成功??赏ㄟ^PM2日志排查問題:

pm2 logs your-app

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女