一般情况下,我们在编译安装的时候会创建指定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