为了账号安全,请及时绑定邮箱和手机立即绑定

Nginx - 静态文件与root和别名混淆

Nginx - 静态文件与root和别名混淆

HUX布斯 2019-08-14 16:27:50
Nginx - 静态文件与root和别名混淆我需要通过我的应用服务器提供我的应用程序8080,以及来自目录的静态文件,而无需触及应用服务器。我拥有的nginx配置是这样的......    # app server on port 8080     # nginx listens on port 8123     server {             listen          8123;             access_log      off;             location /static/ {                     # root /var/www/app/static/;                     alias /var/www/app/static/;                     autoindex off;             }             location / {                     proxy_pass              http://127.0.0.1:8080;                     proxy_set_header        Host             $host;                     proxy_set_header        X-Real-IP        $remote_addr;                     proxy_set_header        X-Forwarded-For  $proxy_add_x_forwarded_for;             }     }现在,使用此配置,一切正常。请注意,该root指令已被注释掉。如果我激活root和停用alias- 它会停止工作。但是,当我/static/从root它删除尾随它开始再次工作。有人可以解释发生了什么。还请解释清楚和冗长之间有什么区别root和alias和它们的用途。
查看完整描述

3 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

就像@treecoder一样

root指令的情况下,将完整路径附加到根,包括位置部分,而在alias指令的情况下,仅将路径中不包括位置部分的部分附加到别名。

一张图片胜过千言万语

用于root

https://img1.sycdn.imooc.com//5d53c62c0001fb7005440356.jpg

用于alias

https://img1.sycdn.imooc.com//5d53c62f0001225b05440356.jpg


查看完整回答
反对 回复 2019-08-14
?
婷婷同学_

TA贡献1844条经验 获得超8个赞

你的情况,你可以使用root指令,因为$uri该部分location指令是与去年相同的root指令部分。

Nginx文档也提供了它:
当location匹配指令值的最后一部分时:

location /images/ {
    alias /data/w3/images/;}

最好使用root指令:

location /images/ {
    root /data/w3;}

root指令将附加$uri到路径。


查看完整回答
反对 回复 2019-08-14
  • 3 回答
  • 0 关注
  • 783 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信