Nginx R31 doc-09-Serving Static Content 静态内容

提供静态内容

配置 NGINX 和 NGINX Plus 以提供静态内容,使用类型特定的根目录,检查文件存在性,并进行性能优化。

本节介绍如何配置 NGINX 和 NGINX Plus 以提供静态内容,如何定义搜索请求文件的路径,如何设置索引文件,以及如何调整 NGINX 和 NGINX Plus 以及内核以实现最佳性能。

根目录和索引文件

root 指令指定将用于搜索文件的根目录。为了获得请求文件的路径,NGINX 将请求 URI 追加到 root 指令指定的路径中。该指令可以放置在 http {}、server {} 或 location {} 上下文中的任何级别。在下面的示例中,root 指令为虚拟服务器定义了根目录。它适用于所有未在 location {} 块中明确重新定义根目录的地方:

server {
    root /www/data;

    location / {
    }

    location /images/ {
    }

    location ~ \.(mp3|mp4) {
        root /www/media;
    }
}

在这里,NGINX 在文件系统中的 /www/data/images/ 目录中搜索以 /images/ 开头的 URI。但是,如果 URI 以 .mp3 或 .mp4 扩展名结尾,NGINX 将在匹配的 location 块中定义的 /www/media/ 目录中搜索文件。

如果请求以斜杠结尾,则 NGINX 将其视为对目录的请求,并尝试在目录中查找索引文件。index 指令定义了索引文件的名称(默认值为 index.html)。继续上面的示例,如果请求 URI 是 /images/some/path/,并且如果存在 /www/data/images/some/path/index.html,则 NGINX 将返回该文件。如果不存在,则 NGINX 默认返回 HTTP 404(未找到)。要配置 NGINX 返回自动生成的目录列表,可以将 on 参数包含在 autoindex 指令中:

location /images/ {
    autoindex on;
}

您可以在 index 指令中列出多个文件名。NGINX 按指定的顺序搜索文件,并返回它找到的第一个文件。

location / {
    index index.$geo.html index.htm index.html;
}

此处使用的 $geo 变量是通过 geo 指令设置的自定义变量。该变量的值取决于客户端的 IP 地址。

要返回索引文件,NGINX 检查其是否存在,然后进行内部重定向,将索引文件的名称追加到基本 URI 中以获取新的 URI。内部重定向导致对位置的新搜索,可能会进入另一个位置,如下面的示例所示:

location / {
    root /data;
    index index.html index.php;
}

location ~ \.php {
    fastcgi_pass localhost:8000;
    #...
}

在这里,如果请求中的 URI 是 /path/,并且 /data/path/index.html 不存在但 /data/path/index.php 存在,则对 /path/index.php 的内部重定向被映射到第二个位置。结果,请求被代理。

尝试多个选项

try_files 指令可以用于检查指定的文件或目录是否存在;如果存在,则 NGINX 进行内部重定向,如果不存在,则返回指定的状态码。

例如,要检查请求 URI 对应的文件是否存在,可以使用 try_files 指令和 $uri 变量,如下所示:

server {
    root /www/data;

    location /images/ {
        try_files $uri /images/default.gif;
    }
}

文件以 URI 的形式指定,使用当前位置或虚拟服务器上下文中设置的 root 或 alias 指令进行处理。在这种情况下,如果原始 URI 对应的文件不存在,NGINX 将内部重定向到最后一个参数指定的 URI,并返回 /www/data/images/default.gif。

最后一个参数也可以是状态码(直接在等号之前)或位置的名称。在以下示例中,如果 try_files 指令的参数都不能解析为现有文件或目录,则返回 404 错误。

location / {
    try_files $uri $uri/ $uri.html =404;
}

在下一个示例中,如果原始 URI 和附加的尾部斜杠的 URI 都不能解析为现有文件或目录,则将请求重定向到命名位置,该位置将请求传递给代理服务器。

location / {
    try_files $uri $uri/ @backend;
}

location @backend {
    proxy_pass http://backend.example.com;
}

要了解更多信息,请观看“内容缓存”网络研讨会,了解如何显著提高网站的性能,并深入了解 NGINX 的缓存功能。

nginx 系列

Nginx-01-聊一聊 nginx

Nginx-01-Nginx 是什么

Nginx-02-为什么使用 Nginx

Nginx-02-Nginx Ubuntu 安装 + windows10 + WSL ubuntu 安装 nginx 实战笔记

Nginx-02-基本使用

Nginx-03-Nginx 项目架构

Nginx-04-Docker Nginx

Nginx-05-nginx 反向代理是什么?windows 下如何配置使用 nginx

Nginx-06-nginx 汇总入门介绍

Nginx R31 doc 官方文档-01-nginx 如何安装

Nginx R31 doc-02-nginx 基本功能

Nginx R31 doc-03-HTTP Load Balancing HTTP 负载均衡

Nginx R31 doc-04-HTTP Health Checks

Nginx R31 doc-05-Dynamic Configuration of Upstreams with the NGINX Plus API 使用 NGINX Plus API 动态配置上游服务器

Nginx R31 doc-06-Accepting the PROXY Protocol

Nginx R31 doc-07-内容缓存

Nginx R31 doc-08-Configuring NGINX and NGINX Plus as a Web Server 配置 NGINX 和 NGINX Plus 作为 Web 服务器

Nginx R31 doc-09-Serving Static Content 静态内容

Nginx R31 doc-10-NGINX Reverse Proxy 反向代理

Nginx R31 doc-11-Compression and Decompression 压缩与解压缩

Nginx R31 doc-12-NGINX SSL Termination 安全加密

Nginx R31 doc-13-Limiting Access to Proxied HTTP Resources 访问限流

Nginx R31 doc-14-Dynamic Denylisting of IP Addresses 动态拒绝IP地址

Nginx R31 doc-15-Live Activity Monitoring 实时活动监控

Nginx R31 doc-16-logging 配置日志

Nginx R31 doc-17-debugging 调试

Nginx R31 doc-18-High Availability Support for NGINX Plus in On-Premises Deployments

Nginx 实战-01-nginx ubuntu 安装笔记

Nginx 实战-01-nginx windows 安装笔记

Nginx 实战-02-nginx proxy_pass 服务代理访问 使用笔记 ubuntu nodejs

Nginx 实战-03-nginx 负载均衡

Nginx 实战-04-nginx 不同的地址访问不同的服务

Nginx 实战-05-nginx 反向代理实现域名到指定的 ip

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,002评论 6 509
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,777评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,341评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,085评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,110评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,868评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,528评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,422评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,938评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,067评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,199评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,877评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,540评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,079评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,192评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,514评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,190评论 2 357

推荐阅读更多精彩内容