环境:我在用nginx做静态资源服务器,访问Linux下的一个图片时网页中出现403 forbidden。

怎么解决?

原因分析

先来看下http状态码403啥意思?

表示资源不可用。服务器理解客户的请求,但拒绝处理它,通常由于服务器上文件或目录的权限设置导致的WEB访问错误。

简单说就是无权访问该资源。
为了确定原因我又查看了nginx的错误日志/usr/local/nginx/logs/error.log

2020/02/12 22:56:24 [error] 5102#0: *107 open() “/opt/img/1.jpg” failed (13: Permission denied)

发现 Permission denied 这个短语很常见啊,就是权限被拒绝。

ok,原因找到就是用户对该资源没有访问权限。既然没有访问权限,那就修改该资源的访问权限就行了呗,一行指令的事。
进入到该资源所在的目录:

chmod 777 1.jpg
意思是,所属用户、所在组、其他用户对该资源都有读写可执行的权利。

网上说的把nginx.conf 全局块的user值改成root,也不一定对。主要是你要看这个资源的所属用户是谁,user的值要和这个资源的所属用户一致才行。光改成root,万一该资源的所属用户为aaa,你改成root也没用啊,是不?

Logo

更多推荐