通过nginx访问静态文件配置,均是在server模块中配置,有两种方式:

1、alias

通过alias关键字,重定义路径,如

server{
listen 7001;
server_name 127.0.0.1;
location /file/ {
alias /home/china/areas/;
}
}

此时,通过浏览器访问http://127.0.0.1:7001/file/t.txt,则访问服务器的文件是/home/china/areas/t.txt

alias可以使用正则表达式,如

location ~ ^/test/(\w+).(\w+)$ {
alise /home/china/$2/$1.$2;
}
访问/test/t.conf,则实际访问的是/home/china/conf/t.conf

2、root

通过root关键字,重定义路径,如

server{
listen 7002;
server_name 127.0.0.1;
location /test/ {
root /home/china/areas/;
}
}

此时,通过浏览器访问http://127.0.0.1:7001/test/t.txt,则访问服务器的文件是/home/china/areas/test/t.txt

上述两种方法均可达到目的,区别是它们对路径的解析方式不同,alas会把指定路径当作文件路径,

而root会把指定路径拼接到文件路径后,再进行访问。

alias方式

  • 文件路径:D:\Program Files\nginx\nginx-1.18.0\vr\test.gif
  • 访问路径:http://localhost/vr/test.gif
  • nginx配置:
server {
        listen       80;
        server_name  localhost;
        location /vr/ {
        		alias 'D:\\Program Files\\nginx\\nginx-1.18.0\\vr\\';
        }
}
  • 也就是说alias重定义/vr/路径为D:\\Program Files\\nginx\\nginx-1.18.0\\vr\\文件夹路径

root方式

  • 文件路径:D:\Program Files\nginx\nginx-1.18.0\vr\test.gif
  • 访问路径:http://localhost/vr/test.gif
  • nginx配置:
server {
        listen       80;
        server_name  localhost;
        location /vr/ {
        		root 'D:\\Program Files\\nginx\\nginx-1.18.0\\';
        }
}
  • 也就是说root追加/vr/路径到D:\\Program Files\\nginx\\nginx-1.18.0\\文件夹路径下,如果写成D:\\Program Files\\nginx\\nginx-1.18.0\\vr\\,则在nginx中将会访问D:\\Program Files\\nginx\\nginx-1.18.0\\vr\\vr\\路径,而此时D:\\Program Files\\nginx\\nginx-1.18.0\\vr\\vr\\test.gif 并不存在,因此会报404

还有个注意点是如果不是图片或者常用的格式,则可能会直接下载。比如jfif图片直接下载,而png、jpg等会直接显示出来。

————————————————
版权声明:本文为CSDN博主「panda-star」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/chinabestchina/article/details/73556785

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐