Nginx 错误 failed (13: Permission denied)

本文将介绍怎样去解决nginx访问资源时“16274#0: *1 open() "/root/nginx/html/favicon.ico" failed (13: Permission denied)”错误

今天在学习 ngin防盗链 时,在另一台服务器上部署了一个 html 文件,然后访问出现了 403 错误。去打开 nginx 错误日志,查看有如下错误信息:

Nginx 错误 failed (13: Permission denied)

详细错误如下:

2018/07/03 02:23:55 [error] 16274#0: *1 open() "/root/nginx/html/daolian/favicon.ico" failed (13: Permission denied), client: 192.168.238.1, server: s1.example.com, request: "GET /favicon.ico HTTP/1.1", host: "s1.example.com", referrer: "https://s1.example.com/"

上面讲我们使用 HTTP 协议访问 GET /favicon.ico HTTP/1.1 资源时,open() "/root/nginx/html/daolian/favicon.ico" failed 打开文件失败,原因为 Permission denied (没有权限)。

解决方法

上面的日志中“Permission denied”,一看就知道是权限出了问题,通过 ps -ef | grep nginx,查看 nginx 的进程信息:

root     15889     1  0 00:01 ?        00:00:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
nginx   15890 15889  0 00:01 ?        00:00:00 nginx: worker process
root     16795 15654  0 00:48 pts/3    00:00:00 grep --color=auto nginx

发现 nginx 进程的用户是 nginx,而我们创建 /root/nginx/html/daolian/favicon.ico 文件的用户是root;因此,只要把 nginx 的进程 user 改为 root 即可,vim /etc/nginx/nginx.conf:

user root;

之后,/etc/init.d/nginx restart 重启 nginx,就可以正常访问网站了。

学习知识要善于思考,思考,再思。我就是靠这个方法成为科学家的。 —— 爱因斯坦
0 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号