作者:焦作艾文斯 | 来源:互联网 | 2023-02-11 13:31
我使用Ansible安装了Nginx.要在Centos7上安装,我使用了yum软件包,因此它默认以root用户身份运行.我希望它在Centos框中以不同的用户(ex- nginx用户)启动和运行.当我尝试使用其他用户运行它时,我收到以下错误:
nginx.service的作业失败,因为控制进程退出并显示错误代码.有关详细信息,请参阅"systemctl status nginx.service"和"journalctl -xe".
我知道以root身份运行是不可取的.那么我该如何解决这个问题并以非root用户身份运行nginx.谢谢
1> Farhad Farah..:
添加/更改以下内容/etc/nginx/nginx.conf
:
user nginx;
您应该创建用户并以递归方式授予webroot目录的权限.
这种方式只有主进程运行为root
.因为:只有root进程可以侦听1024以下的端口.Web服务器通常在端口80和/或443上运行.这意味着它需要以root身份启动.
以非root用户身份运行master进程:
更改以下所有权:
error_log中
访问日志
PID
client_body_temp_path
fastcgi_temp_path
proxy_temp_path
scgi_temp_path
uwsgi_temp_path
将listen指令更改为1024以上的端口,以所需用户身份登录并运行nginx nginx -c /path/to/nginx.conf
2> 小智..:
为了以防万一,出于测试/调试的目的,有时我会以非特权用户身份在Debian(拉伸)笔记本电脑上运行nginx实例。
我使用像这样的最小配置文件:
worker_processes 1;
error_log stderr;
daemon off;
pid nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
access_log access.log;
server {
listen 8080;
server_name localhost;
location / {
include /etc/nginx/uwsgi_params;
uwsgi_pass localhost:8081;
}
}
}
然后,我开始以下过程:
/usr/sbin/nginx -c nginx.conf -p $PWD