前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Nginx Alias别名

Nginx Alias别名

作者头像
用户1560186
发布2019-11-20 17:10:13
3K0
发布2019-11-20 17:10:13
举报
文章被收录于专栏:运维录运维录
背景描述

某个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. 项目目录

代码语言:javascript
复制
tree -L 1 -d star/
star/
├── star
├── static
├── templates
├── uploads
└── web

5 directories

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

代码语言:javascript
复制
location ^~ /static {
    root /star/;
}

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

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

代码语言:javascript
复制
location ^~ /attachments {
    alias /star/uploads/;
}

配置文件

# 项目的nginx 配置文件

代码语言:javascript
复制
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 指令

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

小结

  • 使用alias时,目录名后面不要忘记加"/"。
  • alias只能位于location中。
  • alias使用正则匹配时,必须捕捉要匹配的内容并在指定的内容处使用。
本文参与?腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-10-14,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 运维录 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体同步曝光计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 配置文件
  • Alias 指令
  • 小结
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com