目录
前言
- nginx version: nginx/1.18.0
- CentOS Linux release 7.6.1810 (Core)
alias 语法
alias 的官方说明: http://nginx.org/en/docs/http/ngx_http_core_module.html#alias
Syntax: alias path;
Default: —
Context: location
The path value can contain variables, except $document_root and $realpath_root.
示例
location /i/ {
alias /data/w3/images/;
}
- 当请求为
“/i/top.gif”
时, 返回文件“/data/w3/images/top.gif”
。
配合 location 的正则表达式使用
location ~ ^/users/(.+\.(?:gif|jpe?g|png))$ {
alias /data/w3/images/$1;
}
- 当请求为
“/user/head.png”
时, 返回文件“/data/w3/images/head.png”
。 - 当请求为
“/user/2021/04/18/d3n4iik9.png”
时, 返回文件“/data/w3/images/2021/04/18/d3n4iik9.png”
。
alias 与 root 的区别
location /images/ {
alias /data/w3/images/;
}
location /images/ {
root /data/w3;
}
- 上面两个配置是等效的。
- 当请求为
“/images/head.png”
时,且使用alias
的情况下,返回文件“/data/w3/images/head.png”
(alias path
+head.png
)。 - 当请求为
“/images/head.png”
时,且使用root
的情况下,返回文件“/data/w3/images/head.png”
(alias path
+/images/head.png
)。 - 当
location
为/images/
,且root
目录下包含images
时,nginx 推荐使用root(上面的例子,nginx推荐使用root)。反之,当location
为/images/
,且root
目录下未包含images
时,此时使用root将不能正常工作,需要使用 alias。
错误
403错误
这样写是403错误:
location ~ ^/tt/ {
alias /data/test/;
index index.html index.htm;
}
这样写正确:
location ~ ^/tt/(.*)$ {
alias /data/test/$1;
index index.html index.htm;
}
[error] 21168#21168: *6855 open() “/xxx/xxx/” failed (13: Permission denied)
- 文件所在目录必须具备
rw权限
- 文件必须具备
r权限
upload是目录,1.jpg和1.txt是文件。
参考这里:https://blog.csdn.net/u010999809/article/details/100084838