该博客只是工作笔记
嗯,比较简单,配置如下:
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了
上面的问题使用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;
}
}