root 与alias指令

  1. Syntax: alias path;
  2. Default:
  3. Context: location
  4.  
  5. Syntax: root path;
  6. Default: root html;
  7. Context: http, server, location, if in location

 功能:将URI映射为文件路径,以静态文件返回

差别:root 会将完整的URI映射进文件路径中;alias只会将location后面的文件映射进location中

示例

  1. server {
  2. server_name root.com;
  3. error_log logs/root_error.log info;
  4. access_log logs/root.log main;
  5. location /root {
  6. root html; #表示映射本地html/root
  7. }
  8. location /alias {
  9. alias html; #访问root.com/alias 命中本地/data/web/html
  10. }
  11. location ~ /root/(\w+\.txt) {
  12. root html/first/$1;#访问这个root.com/root/1.txt,命中本地的/data/web/html/first/1.txt/root/1.txt
  13. }
  14. location ~ /alias/(\w+\.txt) {
  15. alias html/first/$1; # 访问这个curl root.com/alias/1.txt,命中本地的/data/web/html/first/1.txt
  16. }
  17. }

  日志

  1. [root@python vhast]# curl root.com/root
  2. <html>
  3. <head><title>404 Not Found</title></head>
  4. <body>
  5. <center><h1>404 Not Found</h1></center>
  6. <hr><center>nginx/1.15.9</center>
  7. </body>
  8. </html>
  9. [root@python vhast]# curl root.com/root/1.txt
  10. <html>
  11. <head><title>404 Not Found</title></head>
  12. <body>
  13. <center><h1>404 Not Found</h1></center>
  14. <hr><center>nginx/1.15.9</center>
  15. </body>
  16. </html>
  17. [root@python vhast]# curl root.com/alias
  18. <html>
  19. <head><title>301 Moved Permanently</title></head>
  20. <body>
  21. <center><h1>301 Moved Permanently</h1></center>
  22. <hr><center>nginx/1.15.9</center>
  23. </body>
  24. </html>
  25. [root@python vhast]# curl root.com/alias/1.txt
  26. first
  27.  
  28. 日志
  29. 192.168.183.4 - - [10/Jul/2019:16:25:01 +0800] "GET /root HTTP/1.1" 404 153 "-" "curl/7.29.0" "-" "/root" "-" "/data/web/html" "/data/web/html/root"
  30. 192.168.183.4 - - [10/Jul/2019:16:30:16 +0800] "GET /root/1.txt HTTP/1.1" 404 153 "-" "curl/7.29.0" "-" "/root/1.txt" "-" "/data/web/html/first/1.txt" "/data/web/html/first/1.txt/root/1.txt"
  31. 192.168.183.4 - - [10/Jul/2019:16:31:51 +0800] "GET /alias HTTP/1.1" 301 169 "-" "curl/7.29.0" "-" "/alias" "-" "/data/web/html" "/data/web/html"
  32. 192.168.183.4 - - [10/Jul/2019:16:32:09 +0800] "GET /alias/1.txt HTTP/1.1" 200 6 "-" "curl/7.29.0" "-" "/alias/1.txt" "-" "/data/web/html/first/1.txt" "/data/web/html/first/1.txt

  三个变量

request_filename :待访问文件的完整路径
document_root : 由URI和root/alis规则生成的文件夹路径
realpath_root:将document_root中的软连接等换成真实路径
  1. [root@python vhast]# cat root.conf
  2. server {
  3. server_name root.com;
  4. error_log logs/root_error.log info;
  5. access_log logs/root.log main;
  6. location /root {
  7. root html; #表示映射本地html/root
  8. }
  9. location /alias {
  10. alias html; #访问root.com/alias 命中本地/data/web/html
  11. }
  12. location ~ /root/(\w+\.txt) {
  13. root html/first/$1;#访问这个root.com/root/1.txt,命中本地的/data/web/html/first/1.txt/root/1.txt
  14. }
  15. location ~ /alias/(\w+\.txt) {
  16. alias html/first/$1; # 访问这个curl root.com/alias/1.txt,命中本地的/data/web/html/first/1.txt
  17. }
  18. location /RealPath/ {
  19. alias html/realpath/;
  20. return 200 "$request_filename:$document_root:$realpath_root!\n";
  21. }
  22. }

  

测试
  1. root@python vhast]# curl root.com/RealPath/
  2. /data/web/html/realpath/:/data/web/html/realpath/:!

  

 
 

nginx 的 content阶段的root指令与alias指令的更多相关文章

  1. nginx location中root指令和alias指令的区别

    nginx location中root指令和alias指令 功能:将url映射为文件路径,以返回静态文件内容 差别:root会将完整的url映射进文件路径中 alias只会将location后的url ...

  2. Nginx CONTENT阶段 static模块

    L63-65 alias指令  syntax: alias path;# 静态文件路径  alias不会将请求路径后的路径添加到 path中 context : location; root指令 sy ...

  3. (转)Nginx静态服务配置---详解root和alias指令

    Nginx静态服务配置---详解root和alias指令 原文:https://www.jianshu.com/p/4be0d5882ec5 静态文件 Nginx以其高性能著称,常用与做前端反向代理服 ...

  4. Nginx 核心配置-根目录root指令与别名alias指令实战案例

    Nginx 核心配置-根目录root指令与别名alias指令实战案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.试验环境说明 1>.虚拟机环境说明 [root@nod ...

  5. Nginx静态服务配置---详解root和alias指令

    Nginx静态服务配置---详解root和alias指令 静态文件 Nginx以其高性能著称,常用与做前端反向代理服务器.同时nginx也是一个高性能的静态文件服务器.通常都会把应用的静态文件使用ng ...

  6. 【精选】Nginx模块Lua-Nginx-Module学习笔记(二)Lua指令详解(Directives)

    源码地址:https://github.com/Tinywan/Lua-Nginx-Redis Nginx与Lua编写脚本的基本构建块是指令. 指令用于指定何时运行用户Lua代码以及如何使用结果. 下 ...

  7. Nginx模块Lua-Nginx-Module学习笔记(二)Lua指令详解(Directives)

    源码地址:https://github.com/Tinywan/Lua-Nginx-Redis Nginx与Lua编写脚本的基本构建块是指令. 指令用于指定何时运行用户Lua代码以及如何使用结果. 下 ...

  8. openresty开发系列35--openresty执行流程之5内容content阶段

    openresty开发系列35--openresty执行流程之5内容content阶段 content 阶段 ---init阶段---重写赋值---重写rewrite---access content ...

  9. 你真的了解nginx重定向URI?-rewrite和alias指令

    未经允许不得转载!最近发现有博主转载我的文章,并没有跟我打招呼,也没有注明出处!!!! 熟悉Nginx的同学都知道Nginx可以用来做负载均衡和反向代理,非常好用.做前后端分离也是非常的方便. 今天我 ...

随机推荐

  1. Java - Test - TestNG: testng.xml 简介

    1. 概述 简介 testng.xml 中的格式, 元素 2. 背景 testng.xml 概述 测试套件 的配置文件 问题 一下生成了那么多内容 我有点看不懂 一上来就看不懂, 其实很正常, 慢慢说 ...

  2. Git - 02. git 版本库简述: 类比平行宇宙

    1. 概述 简单描述 平行宇宙世界观 将 git 与 平行宇宙世界观 做一个类比, 方便理解 熟悉科幻, 或者具体点, 是 漫威宇宙 的朋友, 可以稍微轻松一点 这个是 第一次 重写后的版本. 代码在 ...

  3. base64加/解密算法C++实现

    base64编码原理:维基百科 - Base64 其实编码规则很简单,将字符串按每三个字符组成一组,因为每个字符的 ascii 码对应 0~127 之间(显然,不考虑其他字符集编码),即每个字符的二进 ...

  4. CRT中国剩余定理 & Lucas卢卡斯定理

    数论_CRT(中国剩余定理)& Lucas (卢卡斯定理) 前言 又是一脸懵逼的一天. 正文 按照道理来说,我们应该先做一个介绍. 中国剩余定理 中国剩余定理,Chinese Remainde ...

  5. 喵星之旅-狂奔的兔子-centos7安装MySQL 5.5

    安装环境:https://www.cnblogs.com/kittybunny/p/12296078.html 一.下载安装文件 下载地址 https://downloads.mysql.com/ar ...

  6. source insight 编译后出现停止工作解决方法

    解决方法: 工程的路径不要有中文,都用英文

  7. 洛谷P1616疯狂的采药(完全背包)

    题目背景 此题为NOIP2005普及组第三题的疯狂版. 此题为纪念LiYuxiang而生. 题目描述 LiYuxiang是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师.为此,他想拜附近最有威望的 ...

  8. Jmeter_请求原件之参数化CSV

    1.用途:注册10个账户 2.用CSV 制造数据相对比TEXT更方便 3.创建CSV 文件,注册账户和密码如下 4.Jmeter设置如下 因为是注册10个账户,要运行10次 5.线程组->添加- ...

  9. Navicat连接两个不同机子上的mysql数据库,端口用换吗?--不用

    经过了上一篇的努力,成功的连上了远程的mysql数据库 dos 命令行下的成功连接 在用Navicat连接的时候要注意: 端口仍然是3306,而不用去更改,并不会和上面的本机的Mysql连接使用的端口 ...

  10. WordPress 网站迁移

    最近想把本地的WordPress迁移到我的Linux虚拟机里面,是不是很无聊,哈哈哈,接下来就是一过程了,其实这个和迁移到线上是一样的, 1.首先将本地的文件WordPress通过FTP传到虚拟机上: ...