使用nginx搭建一个静态文件服务器时,请求一张图片,出现404.。查看nginx的日志显示:permission denied。
ps -ef | grep nginx
发现启动进程的用户是nobody。nobody是linux系统自带的用户,权限很少。使用这个用户起的进程时,就算被黑客劫持了也不能干其他事,保证安全。所以当请求图片时,nginx没有权限读取图片,所以发生错误。
为什么会时nobody启动的nginx?
我搭建nginx环境是从官网上下载的二进制文件,直接就用了。在configure的时候应该加上--user参数,不过当时没加,所以使用了默认的nobody用户。
解决方法:
在nginx.conf文件中加上user root;
建议:
在使用nginx或者其他第三方服务的时候,建立一个对应的用户,避免第三方服务有bug,被黑客劫持。