Linux Nginx的权限——访问本地目录报错403

  在安装好FastDFS并成功上传图片文件后,根据FastDFS返回的文件地址无法通过HTTP(即浏览器)访问到,报错404或者403。

  不管是Error 404还是Error 403,基本都是Nginx的配置出了问题。

  Nginx的配置文件是:/etc/nginx/nginx.conf

  如果是Error 404,很可能是其中server中location的对本地文件url的映射配置有问题,这里不详述。

  如果是Error 403,拒绝访问。那么是权限问题。

  我的情况是,我把图片的文件保存地址放在了“/root/...”下,而nginx接收到请求后无权限访问。

  所以要么就更改/root文件夹的权限,要么重新设置Nginx的权限。

  在StackOverFlow找到了解决办法:Nginx can't access root directory in sites-available.

  简单说一下:

  根据Nginx的官方文档,Nginx程序有两种进程:

  一种是master process,即主进程,系统中只有一个。主进程的主要目的是读取和评估配置文件,以及维护工作进程。

  一种是worker process,即工作进程,系统中可以有多个。工作进程执行请求的实际处理。 NGINX依赖于依赖操作系统的机制来有效地在工作进程之间分配请求。工作进程数由nginx.conf配置文件中的worker_processes指令定义,可以设置为固定数字,也可以配置为自动调整为可用CPU核心数。

  直接查看现在系统中的Nginx进程:

user@user:~$ ps aux|grep nginx|grep -v grep

  我的是看到一个master,和一个worker。然后master的权限为root,worker的权限为nobody。

  在我的/etc/nginx/nginx.conf的头部,有个注释行#user:nobody,Nginx的文档也说默认是nobody,取消注释,将nobody改成root。ok,可以通过HTTP访问上传保存在/root中的图片了。

  最后,我觉得不应该把FastDFS的保存地址放在/root下。