1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > nginx访问静态资源文件配置

nginx访问静态资源文件配置

时间:2023-10-12 02:15:37

相关推荐

nginx访问静态资源文件配置

在某些情况下需要以web的方式访问静态文件资源,其实有两种方式可以实现:

1. alias

可以在nginx.conf的server中这样配置:

server {listen 80;location /file/ {alias /home/;}}

虚拟机的IP:192.168.43.52

比如/home下的文件是这些:

[root@localhost home]# lltotal 8-rw-r--r--. 1 root root 199 Jan 3 08:16 aa.txtdrwxr-xr-x. 3 root root 25 Jan 3 01:54 appdrwxr-xr-x. 6 root root 4096 Jan 3 08:18 backupdrwxr-xr-x. 4 root root 28 Jan 3 00:36 data[root@localhost home]#

此时在宿主机浏览器输入:http://192.168.43.52/file/aa.txt

实际上访问的是/home/aa.txt

其实还可以使用正则表达式来定义:

location ~ ^/f/(\w+).(\w+)$ {alias /home/$1/$1.$2;}

此时访问http://192.168.43.52/f/data.txt实际上访问的是/home/data/data.txt

上面的正则表达式的含义是这样:

~表示区分大小写的匹配

^表示以...开头,上面的正则表示以/f开头

\w+ 匹配字母或数字或下划线或汉字 等价于 '[^A-Za-z0-9_]'

$ 表示以...结尾

$1 匹配结果的第1个分组

$2 匹配结果的第2个分组

因此/f/data.txt 会被正则匹配解析成两个分组,第一个分组$1=data,第2个分组$2=data.txt, 因此会动态组成新的路径home/data/data.txt,最终返回这个文件

这样的规则有何用处呢?

目的是返回一个与文件夹同名的文件.

2.root

使用root关键字可以重新定义路径

server {...location /data/ {root /home/;}}

比如/home/下有这些文件

/home/data/data.txt

/home/data/d.txt

/home/data/firewall.txt

/home/data/man.txt

访问http://192.168.43.52/data/man.txt时实际上访问的是/home/data/main.txt

访问http://192.168.43.52/data/data.txt时实际上访问的是/home/data/data.txt

可以看到这种方式是把url中的一部分内容直接拼接到配置的路径后面,然后进行访问。

3.返回结果

经过测试访问不同后缀的文件,返回方式有以下3种情况:

a. 直接打开文件内容

.txt .json 图片文件,这些文件可以直接在浏览器里展示出具体内容

b.下载文件

.log .gz .zip 文件可以直接下载,

c. 打开文件并渲染

.html .htm 文件可以被直接打开并且进行渲染

但是需要注意的是,这种方式无法访问目录

以上介绍了这么多,nginx访问静态资源具体有何真正的用处呢,其实一个真实的案例就是可以配置一个location,以便在浏览器上返回某些系统的日志,将会在后续的文章中给出具体的案例。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。