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

  • 主进程是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进程用哪个用户来运行)