美文网首页
设置Nginx Woker进程用哪个用户来运行

设置Nginx Woker进程用哪个用户来运行

作者: 印随2018 | 来源:发表于2021-05-07 10:56 被阅读0次
    • 主进程是root用户
      • 没有做任何配置:nobody
      • 编译时配置:./configure 指定的 --user=USER
      • nginx.conf配置:user user [group];(只有以root用户启动时才生效)

    filename: auto/unix

    # Copyright (C) Igor Sysoev
    # Copyright (C) Nginx, Inc.
    
    
    NGX_USER=${NGX_USER:-nobody}
    

    filename: auto/options

           ......
    
            --user=*)                        NGX_USER="$value"          ;;
            --group=*)                       NGX_GROUP="$value"         ;;
    
           ......
    
    • 主进程是非root用户
      • 继承主进程的用户

    filename: src/os/unix/ngx_process.c

        if (geteuid() == 0) {
            if (setgid(ccf->group) == -1) {
                ngx_log_error(NGX_LOG_EMERG, cycle->log, ngx_errno,
                              "setgid(%d) failed", ccf->group);
                /* fatal */
                exit(2);
            }
    
            ...
            if (setuid(ccf->user) == -1) {
                ngx_log_error(NGX_LOG_EMERG, cycle->log, ngx_errno,
                              "setuid(%d) failed", ccf->user);
                /* fatal */
                exit(2);
            }
            ...
        }
    

    相关文章

      网友评论

          本文标题:设置Nginx Woker进程用哪个用户来运行

          本文链接:https://www.haomeiwen.com/subject/fjjnrltx.html