溫馨提示×

CentOS 環境下 Node.js 項目的部署和管理技巧有哪些

小樊
106
2025-02-12 06:57:27
欄目: 編程語言

在CentOS環境下部署和管理Node.js項目有許多技巧和步驟,以下是一些關鍵內容:

環境準備

  1. 更新系統:確保系統是最新的,使用以下命令更新系統包:
    sudo yum update -y
    
  2. 安裝Node.js:可以使用NodeSource倉庫安裝最新版本的Node.js:
    curl -sL https://rpm.nodesource.com/setup_14.x | sudo bash -
    sudo yum install -y nodejs
    
  3. 安裝Nginx(反向代理):用于負載均衡和靜態文件服務:
    sudo yum install -y nginx
    

項目搭建

  1. 創建項目目錄
    mkdir myapp
    cd myapp
    
  2. 初始化項目
    npm init -y
    
  3. 安裝Express和EJS(如果使用EJS模板):
    npm install express ejs
    
  4. 創建服務器文件:例如app.js
    const express = require('express');
    const app = express();
    app.set('view engine', 'ejs');
    app.get('/', (req, res) => {
        res.render('index', { title: '首頁' });
    });
    app.listen(3000, () => {
        console.log('Server is running on port 3000');
    });
    
  5. 創建EJS模板:在項目根目錄下創建views文件夾,并在其中創建index.ejs文件。

配置Nginx反向代理

  1. 編輯Nginx配置文件
    sudo vi /etc/nginx/nginx.conf
    
  2. 添加以下配置
    server {
        listen 80;
        server_name yourdomain.com;
        location / {
            proxy_pass http://localhost:3000;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }
    
  3. 重啟Nginx
    sudo systemctl restart nginx
    

使用PM2管理Node.js進程

  1. 安裝PM2
    sudo npm install -g pm2
    
  2. 啟動項目
    pm2 start app.js --name your-app-name
    
  3. 查看應用狀態
    pm2 list
    pm2 logs
    

性能優化

  1. 使用反向代理服務器:如NGINX,處理大量網絡流量,提供負載均衡和靜態文件緩存。
  2. 緩存靜態文件:使用NGINX等工具緩存靜態資源,減少Node.js服務器的負載。
  3. 實現Node.js負載均衡:通過NGINX實現無狀態負載均衡,分發請求到多個Node.js實例。
  4. 代理WebSocket連接:利用NGINX代理WebSocket連接,優化連接性能。
  5. 實現SSL/TLS和HTTP/2:使用NGINX支持SSL/TLS反向代理,提高連接效率。

代碼層面的優化建議

  1. 使用異步編程:利用async/await和Promise,避免阻塞事件循環。
  2. 避免阻塞事件循環:確保I/O操作不會阻塞事件循環,使用setImmediate()process.nextTick()將耗時操作放入下一個事件循環迭代中。
  3. 使用流(Streams):處理大量數據時,使用流可以減少內存占用并提高性能。
  4. 優化數據庫查詢:為常用查詢字段創建索引,使用連接池管理數據庫連接。
  5. 合理使用緩存:對于重復的計算或請求,使用緩存減少不必要的計算或網絡請求。

通過這些步驟和優化策略,可以在CentOS環境下高效地部署和管理Node.js項目。

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