一般情况下,我们在编译安装的时候会创建指定nginx来运行程序,但是nginx启动后它的master进程还是root,为了安全起见,我们要修改它的主进程,改为普通用户。

     注意:普通进程就使用普通用户管理就可以,不要任何程序都使用root

     检查:ps -ef 

1、先创建一个普通用户;    

    useradd yujia

 

2、 将nginx主程序下的配置文件conf、html、logs文件拷贝到普通用户的家目录下;

    cd /home/yujia

    cp -ap /usr/local/nginx/conf  .    

    cp -ap /usr/local/nginx/html  .    

    cp -ap /usr/local/nginx/logs . 

 

2、修改配置文件vim  /home/yuja/conf/nginx.conf

要想使用普通用户运行nginx 必须要将端口80更改,大于1024,此处使用8080,以下只列出修改的部分:
error_log  /home/yujia/nginx/logs/error.log error;
pid        /home/yujia/nginx/logs/nginx.pid;
http {
     server {
        listen 8080;
        server_name  www.yujia.com yujia.com;
        root   /home/yujia/nginx/html;
        index  index.html;
        access_log /home/yujia/nginx/logs/www_access.log main;
        error_log  /home/yujia/nginx/logs/www_error.log;                  
                                                   }
}

   #端口可以使用sudo或者 nat 转换解决;

 

4、将/home/yujia目录下的logs、conf、html三个目录赋权给yujia这一普通用户;

     chown -R yujia /home/yujia/*

 

5、 切换到yujia普通用户下启动nginx

    su - yujia

    /usr/local/nginx/sbin/nginx  -c /home/yujia/conf/nginx.conf

   检查:ps -ef|grep nginx

 

如果出现nginx: [alert] could not open error log file: open() "/usr/local/nginx/logs/error.log" failed (13: Permission denied) 类似错误,切换到root,将报错目录的权限改为777即可

    chmod -R 777 /usr/local/nginx/logs