nginx root&alias 文件路径配置
nginx 指定文件路径有两种方式 root 和 alias,root 与 alias 主要区别在于 nginx 如何解释 location 后面的 uri,这会使两者分别以不同的方式将请求映射到
服务器文件上。
[root]
语法:root path
默认值:root html
配置段:http、server、location、if
[alias]
语法:alias path
配置段:location
实例:
location ~ ^/weblogs/ {
root /data/weblogs/www.ysl.com;
autoindex on;
auth_basic
"Restricted";
auth_basic_user_file passwd/weblogs;
}
如果一个请求的 URI 是/weblogs/httplogs/www.ysl.com-access.log 时,web 服务器将会返回服务器上的/data/weblogs/www.ysl.com/weblogs/httplogs/www.ysl.com-access.log 的文件。[info]root 会根据完整的 URI 请求来映射,也就是/path/uri。[/info]因此,前面的请求映射为 path/weblogs/httplogs/www.ysl.com-access.log。
location ^~ /binapp/ {
limit_conn limit ;
limit_rate 200k;
internal;
alias /data/statics/bin/apps/;
}
alias 会把 location 后面配置的路径丢弃掉,把当前匹配到的目录指向到指定的目录。如果一个请求的 URI 是/binapp/a.ysl.com/favicon 时,web 服务器将会返回服务器上的/data/statics/bin/apps/a.ysl.com/favicon 的文件
注意:
1. 使用 alias 时,目录名后面一定要加”/”。
2. alias 可以指定任何名称。
3. alias 在使用正则匹配时,必须捕捉要匹配的内容并在指定的内容处使用。
4. alias 只能位于 location 块中
ngx_http_core_module 模块在处理请求时,会有大量的变量,这些变量可以通过访问日志来记录下来,也可以用于其它nginx 模块。在我们对请求做策略如改写等等都会使用到一些变量,顺便对 ngx_http_core_module 模块提供的变量总结了下,如下所示:
参数名称 | 注释 |
$arg_PARAMETER | HTTP 请求中某个参数的值,如/index.php?site=www.ysl.com,可以用$arg_site 取得 www.ysl.com 这个值 |
$args HTTP | 请求中的完整参数。例如,在请求/index.php?width=400&height=200 中,$args 表示字符串 width=400&height=200 |
$binary_remote_addr | 二进制格式的客户端地址。例如:\x0A\xE0B\x0E |
$body_bytes_sent | 表示在向客户端发送的 http 响应中,包体部分的字节数 |
$content_length | 表示客户端请求头部中的 Content-Length 字段 |
$content_type | 表示客户端请求头部中的 Content-Type 字段 |
$cookie_COOKIE | 表示在客户端请求头部中的 cookie 字段 |
$document_root | 表示当前请求所使用的 root 配置项的值 |
$uri | 表示当前请求的 URI,不带任何参数 |
$document_uri | 与$uri 含义相同 |
$request_uri | 表示客户端发来的原始请求 URI,带完整的参数。$uri 和$document_uri 未必是用户的 原始请求,在内部重定向后可能是重定向后的 URI,而$request_uri 永远不会改变,始终是客户端的原始 URI. |
$host | 表示客户端请求头部中的 Host 字段。如果 Host 字段不存在,则以实际处理的 server (虚拟主机)名称代替。如果 Host 字段中带有端口,如 IP:PORT,那么$host 是去掉端口的,它的值为 IP。$host 是全小写的。这些特性与 http_HEADER 中的 http_host 不同,http_host 只取出 Host 头部对应的值。 |
$hostname | 表示 Nginx 所在机器的名称,与 gethostbyname 调用返回的值相同 |
$http_HEADER | 表示当前 HTTP 请求中相应头部的值。HEADER 名称全小写。例如,示请求中 Host 头部 对应的值 用 $http_host 表 |
$sent_http_HEADER | 表示返回客户端的 HTTP 响应中相应头部的值。HEADER 名称全小写。例如,用 $sent_ http_content_type 表示响应中 Content-Type 头部对应的值 |
$is_args | 表示请求中的 URI 是否带参数,如果带参数,$is_args 值为 ?,如果不带参数,则是 空字符串 |
$limit_rate | 表示当前连接的限速是多少,0 表示无限速 |
$nginx_version | 表示当前 Nginx 的版本号 |
$query_string | 请求 URI 中的参数,与 $args 相同,然而 $query_string 是只读的不会改变 |
$remote_addr | 表示客户端的地址 |
nginx root&alias 文件路径配置的更多相关文章
- nginx root&alias文件路径配置
转:https://www.ttlsa.com/nginx/nginx-root_alias-file-path-configuration/ 总结: alias 改变了访问路径.root对应loca ...
- nginx root && alias 文件路径配置
文章摘自:http://www.ttlsa.com/nginx/nginx-root_alias-file-path-configuration/ nginx指定文件路径有两种方式root和alias ...
- Nginx中的root&alias文件路径及索引目录配置详解
这篇文章主要介绍了Nginx中的root&alias文件路径及索引目录配置,顺带讲解了root和alias命令的用法,需要的朋友可以参考下 root&alias文件路径配置ng ...
- Nginx笔记总结七:root和alias文件路径配置
1. root path 配置段:http.server.location.if location ~ ^/weblogs/ { root /data/weglogs/www.ttlsa.com; a ...
- nginx之七:nginx path(root)文件路径配置
nginx指定文件路径有两种方式root和alias,这两者的用法区别,使用方法总结了如下,方便大家在应用过程中,快速响应.root和alias主要区别在于如何解释location后面的uri,这会使 ...
- nginx文件路径配置(root|alias)
nginx指定文件路径主要有两种方式:root|alias. 那么他们究竟有什么区别呢? 指令的使用方法和作用域: [root] 语法:root path 默认值:root html 配置段:http ...
- Nginx静态文件路径配置
root目录与alias目录的区别 Nginx路径location配置中,使用root目录与alias目录的区别 1)alias指定的目录是准确的,即location匹配访问的path目录下的文件直接 ...
- Django框架之模板路径及静态文件路径配置
内容: (1)模板文件路径的配置 (2)静态文件路径的配置 一.模板文件路径的配置 模板文件主要通过jinja2模板进行渲染html页面,实现动态页面. 步骤一:创建一个template的文件夹,用于 ...
- django开发过程中静态文件路径配置
在demo项目的settings.py文件中找到 STATICFILES_DIRS STATICFILES_DIRS = ( 'static', #这个名字是项目根目录下的文件夹名称,注意后面有逗号 ...
随机推荐
- 前端之 js的介绍和javascript的基础使用
一 javasvript的介绍 JavaScript概述 1 JavaScript发展史 1.1 1992年Nombas开发出C-minus-minus(--)的嵌入式的脚本语言(最初绑定在CEnvi ...
- TP5在lnmp环境中不能重写的问题
说到坑,这个问题困扰了我一两天时间,本地可以,线上环境检查了好久. 基本检查的地方有几个了,首先就是nginx下面的重写配置,这个大家在网上都能搜到,至于定义的变量和配置路径,修改一下即可. 还有就是 ...
- 2019.01.21 bzoj3674: 可持久化并查集加强版(主席树+并查集)
传送门 题意:维护可持久化并查集,支持在某个版本连边,回到某个版本,在某个版本 询问连通性. 思路: 我们用主席树维护并查集fafafa数组,由于要查询历史版本,因此不能够用路径压缩. 可以考虑另外一 ...
- 苹果电脑thunderbolt连接两台电脑启动方法
thunderbolt:首先连接连台电脑 然后开启可以启动的电脑, 关闭无法启动的电脑. 接着 按一下法启动的电脑电源—> 然后按t键 会在另外一台可以启动的电脑上出现,无法启动电脑的磁盘. 就 ...
- 使用 docker compose 安装 tidb
目标 : 单机上通过 Docker Compose 快速一键部署一套 TiDB 测试集群 前提条件: 1.centos版本在7.3 以上 2.安装git 3.安装docker Docker versi ...
- Le Chapitre I
Lorsque j'avais six ans j'ai vu, une fois, une magnifique image, dans un livre sur la Forêt[fɔrε] Vi ...
- Linux服务器密钥安全登录
使用密钥登录的好处:1.省事,不用每次去敲用户名和密码:2.安全,密钥长度一般是1024位,比我们设的密码要长得多: 以下是为新用户jackson添加密钥登录的步骤. 1.添加用户,并添加到sudoe ...
- C#系列之{流和序列化}
不论何种类型的文件都可以表示为一个字节数组.(Byte[]) 一.文件复制 (示例) 首先建立一个类似管道的东西将文件和内存中的程序连接,并将文件按字节发送.为了保存接收到的文件字节,需要创建一个字节 ...
- Cacti Install Error
Cacti Error happened while installing: ERROR: Your MySQL TimeZone database is not populated. Please ...
- U盘或者移动银盘退出时一直显示占用中问题解决--最粗暴解决方式
问题描述: ---------------------------弹出 USB 大容量存储设备 时出问题---------------------------Windows 无法停用“通用卷”设备,原 ...