【请教】利用nginx搭建静态资源服务器,但是在浏览器访问时报403 forbidden错误
来源:7-5 实例演示反向代理和负载均衡

刘大鱼
2019-06-11
如题,资源放在自己建的nginx/dlib目录下,配置如下:
#user nobody;
worker_processes 1;
pid /var/run/nginx.pid;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name www.apachetest.com;
location / {
alias dlib/;
}
#charset koi8-r;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
浏览器上报错信息如下
日志报错如下:
2019/06/11 00:32:04 [error] 5458#0: *23 directory index of "/etc/nginx/dlib/" is forbidden, client: 192.168.2.114, server: www.apachetest.com, request: "GET / HTTP/1.1", host: "www.apachetest.com"
2019/06/11 00:32:45 [error] 5488#0: *25 directory index of "/etc/nginx/dlib/" is forbidden, client: 192.168.2.114, server: www.apachetest.com, request: "GET / HTTP/1.1", host: "www.apachetest.com"
这是资源的访问权限不够吗?但是资源文件目录及其下的目录权限均为755,而文件均为644,应该是有读权限的。
我将其中一个文件权限改成777也同样失败了,另外目录是通过root账户建立的。
请问一下老师这是什么原因?
【更新】我将资源文件目录放到了另一个账户下了,随后修改了alias/root的设置,还是无法访问,路径设置了两种不同,错误也是不一样的。
第1种路径设置:还是403 forbidden,代码如下(使用alias还是root效果是一样的)
server {
listen 80;
server_name www.apachetest.com;
location / {
#配置一个存储静态资源的web服务器,静态资源目录为/home/leo/tmp/dlib/
alias /home/leo/tmp/dlib/;
# root /home/leo/tmp/dlib/;
}
第2种路径设置:直接显示了/html/index.html的欢迎页面(使用alias还是root效果一样)
server {
listen 80;
server_name www.apachetest.com;
location /dlib/ {
#配置一个存储静态资源的web服务器,静态资源目录为/home/leo/tmp/dlib/
alias /home/leo/tmp/;
# root /home/leo/tmp/;
}
另外,静态资源是从dlib网页下载的,做这个配置的目的就是希望能通过访问www.apachetest.com达到访问dlib网页的效果(http://dlib.net)
写回答
2回答
-
编程浪子
2019-06-26
你好
直接到课程群里面沟通,快些。这里面的描述也描述不清楚
00 -
编程浪子
2019-06-11
你好
/etc/ 整个目录都是系统目录了,你不应该在这个目录下面读取文件了。
给你一个参考的:https://gitee.com/apanly/mooc/blob/master/vagrant/ubuntu/nginx/laravel5.conf 。
062019-06-26
相似问题