专栏首页运维录Nginx Alias别名

Nginx Alias别名

背景描述

某个django项目,用户上传的文件存储在 /star/uploads目录;

对应的URI为 http://www.demo.com/attachments/mylist.csv 。

项目需要的静态文件(css、js、pic)存储在 /star/static目录;

对应的URI为 http://www.demo.com/static/js/jquery.js 。

1. 项目目录

tree -L 1 -d star/
star/
├── star
├── static
├── templates
├── uploads
└── web

5 directories

2. 这里使用Nginx反向代理django ,对于 URI能够匹配的/static 与 /star/static目录来说,我们可以使用nginx的 root指令,例如:

location ^~ /static {
    root /star/;
}

3. 但是对于 URI不能匹配的/attachments 与 /star/uploads目录来说,我们该如何处理呢?

对啦答案就是nginx的alias指令,例如:

location ^~ /attachments {
    alias /star/uploads/;
}

配置文件

# 项目的nginx 配置文件

cat /etc/nginx/conf.d/default.conf 

server {

    listen 80;
    server_name  www.demo.com;

    #..其它配置项目省略

    # alias 到文件
    location = /baidu_verify.html {
        alias  /star/static/baidu_verify.html;
    }

    # alias 到目录
    location ^~ /attachments {
        alias /star/uploads/;
        expires 180d;
    }

    location ^~ /static {
        root /star/;
        expires 60d;
    }

    location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Host $http_host;
        proxy_pass http://unix:/var/run/django.socket;
        proxy_redirect default;
    }

}

Alias 指令

语法: alias file-path|directory-path;
默认值: no
使用字段: location
功能:
这个指令为location指定一个路径,它类似于root指令但是$document_root没有改变,只是请求响应使用了别名目录的文件。

小结

  • 使用alias时,目录名后面不要忘记加"/"。
  • alias只能位于location中。
  • alias使用正则匹配时,必须捕捉要匹配的内容并在指定的内容处使用。

本文分享自微信公众号 - 运维录(gh_70d95b8f5f7c)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-10-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Nginx Location

    不知不觉 nginx主题的文章写了60+篇,有最早的也有最近的,有些是记录安装配置,有些是记录问题解决方法,内容质量有深也有浅参差不齐,随着技术迭代有些文章已经...

    用户1560186
  • 如何使用 Dockerfile自定义镜像?

    之前在隔壁专题(公众号出门左转 Nginx专题) 推送过一篇文章 Nginx 缓存服务器(番外)定制Docker镜像 。

    用户1560186
  • Nginx 反向代理 Tomcat 错误示例

    这篇文章的内容来源 2016年的两篇文章,当时使用 Nginx 反向代理 Tomcat/Resin 出现错误,发现是 proxy_redirect 指令导致的问...

    用户1560186
  • 闲鱼前端基于 serverless 的一种多端开发解决方案

    前端的发展太快了,前端框架和技术的发展也层出不穷,还包括不同智能设备的出现,对前端开发同学来说是个很大的跳转,简单列举下:

    奋斗蒙
  • 基于事件驱动的并发编程

    高广超
  • Java进阶09 事件响应

    在GUI中,我们看到了如何用图形树来组织一个图形界面。然而,这样的图形界面是静态的。我们无法互动的对该界面进行操作。GUI的图形元素需要增加事件响应(event...

    Vamei
  • 线性资本合伙人:技术驱动这个词被说滥了,但我们真理解对了吗?

    首先这里只谈软件。这个话题分成三部分,我们将分三篇文章来讨论,读完之后你可以知道: 1)什么叫技术驱动; 2)什么叫数据公司; 3)为什么要做一家技术驱动的数...

    新智元
  • 【FAQ】本地训练与预测相关问题汇总

    导语 在使用指南的最后一部分,我们汇总了使用PaddlePaddle过程中的常见问题,本部分推文目录如下: 2.22:【FAQ】模型配置相关问题汇总 2.23:...

    用户1386409
  • 设备虚拟化到底是咋整的(一)

    腾讯云TStack
  • 前后端分离结构中使用shiro进行权限控制

    前阵子在前后端分离项目中集成shiro项目,折腾了一下子,参考了网上一些博客,发现大多都还是之前传统的模式,并不适用于前后端分离结构。今天抽空整理了下demo,...

    河岸飞流

扫码关注云+社区

领取腾讯云代金券