nginx简单文件服务器配置

该博客只是工作笔记

嗯,比较简单,配置如下:

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location /media {
	root /opt/media;
        sendfile on;
        tcp_nodelay on;
        autoindex on;

    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

}

然后通过浏览器访问一下,在浏览器中输入http://IP:PORT/media
发现出现了404
这是为啥,检查一下配置,才知道果然配置错了,我的/opt/media下的结构如下:

[root@VM_0_15_centos media]# pwd
/opt/media
[root@VM_0_15_centos media]# tree
.
├── 1.pdf
└── code
    └── run.sh

1 directory, 2 files

我的/opt/media下是没有media的,所以显示404,上面的配置在访问http://IP:PORT/media的时候其实访问的是/opt/media/media下的文件,如果想正常访问,需要将root改为 /opt,修改后如下:

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location /media {
	root /opt;
        sendfile on;
        tcp_nodelay on;
        autoindex on;

    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

}

测试一下,ok了
nginx简单文件服务器配置_第1张图片

上面的问题使用alias也是可以解决的,这个涉及到了root和alias的区别,alias是为映射目录的别名,不会将location后面的url加入到映射目录后面,也可以理解为重定向吧
配置如下:

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location /media {
	alias /opt/media;
        sendfile on;
        tcp_nodelay on;
        autoindex on;

    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

}

你可能感兴趣的:(nginx)