linux

Linux Node.js日志权限设置最佳实践

小樊
47
2025-06-22 04:13:05
栏目: 编程语言

在Linux环境下为Node.js应用设置日志权限是确保系统安全性和稳定性的关键步骤。以下是一些最佳实践:

基本权限设置原则

具体设置步骤

  1. 创建专用用户和组

    sudo groupadd nodeapp
    sudo useradd -g nodeapp nodeapp -s /bin/false
    
  2. 创建日志目录并设置权限

    sudo mkdir -p /var/log/my-node-app
    sudo chown nodeapp:nodeapp /var/log/my-node-app
    sudo chmod 750 /var/log/my-node-app
    
  3. 日志文件权限设置 在Node.js应用中,确保日志文件创建时使用正确的权限:

    const fs = require('fs');
    const logStream = fs.createWriteStream('/var/log/my-node-app/app.log', {
      flags: 'a', // 追加模式
      mode: 0o640 // 设置权限为 -rw-r-----
    });
    
  4. 使用logrotate管理日志 创建/etc/logrotate.d/my-node-app文件:

    /var/log/my-node-app/*.log {
      daily
      missingok
      rotate 14
      compress
      delaycompress
      notifempty
      create 640 nodeapp nodeapp
      sharedscripts
      postrotate
        [ ! -f /var/run/my-node-app.pid ] || kill -USR1 `cat /var/run/my-node-app.pid`
      endscript
    }
    
  5. 使用PM2时的权限设置 如果使用PM2管理Node.js应用:

    pm2 start app.js --uid nodeapp --gid nodeapp
    

    并确保PM2日志目录权限正确:

    sudo chown -R nodeapp:nodeapp /home/nodeapp/.pm2
    

常见问题解决方案

最佳实践

通过以上设置,可以确保Node.js应用日志既安全又可维护。

0
看了该问题的人还看了