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

打印 上一主题 下一主题

主题 842|帖子 842|积分 2526

提供静态内容

设置 NGINX 和 NGINX Plus 以提供静态内容,利用类型特定的根目录,查抄文件存在性,并进行性能优化。
本节先容如何设置 NGINX 和 NGINX Plus 以提供静态内容,如何定义搜索哀求文件的路径,如何设置索引文件,以及如何调整 NGINX 和 NGINX Plus 以及内核以实现最佳性能。
根目录和索引文件

root 指令指定将用于搜索文件的根目录。为了得到哀求文件的路径,NGINX 将哀求 URI 追加到 root 指令指定的路径中。该指令可以放置在 http {}、server {} 或 location {} 上下文中的任何级别。在下面的示例中,root 指令为虚拟服务器定义了根目录。它适用于所有未在 location {} 块中明白重新定义根目录的地方:
  1. server {
  2.     root /www/data;
  3.     location / {
  4.     }
  5.     location /images/ {
  6.     }
  7.     location ~ \.(mp3|mp4) {
  8.         root /www/media;
  9.     }
  10. }
复制代码
在这里,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 指令中:
  1. location /images/ {
  2.     autoindex on;
  3. }
复制代码
您可以在 index 指令中列出多个文件名。NGINX 按指定的顺序搜索文件,并返回它找到的第一个文件。
  1. location / {
  2.     index index.$geo.html index.htm index.html;
  3. }
复制代码
此处利用的 $geo 变量是通过 geo 指令设置的自定义变量。该变量的值取决于客户端的 IP 地点。
要返回索引文件,NGINX 查抄其是否存在,然后进行内部重定向,将索引文件的名称追加到基本 URI 中以获取新的 URI。内部重定领导致对位置的新搜索,大概会进入另一个位置,如下面的示例所示:
  1. location / {
  2.     root /data;
  3.     index index.html index.php;
  4. }
  5. location ~ \.php {
  6.     fastcgi_pass localhost:8000;
  7.     #...
  8. }
复制代码
在这里,如果哀求中的 URI 是 /path/,并且 /data/path/index.html 不存在但 /data/path/index.php 存在,则对 /path/index.php 的内部重定向被映射到第二个位置。效果,哀求被署理。
尝试多个选项

try_files 指令可以用于查抄指定的文件或目录是否存在;如果存在,则 NGINX 进行内部重定向,如果不存在,则返回指定的状态码。
例如,要查抄哀求 URI 对应的文件是否存在,可以利用 try_files 指令和 $uri 变量,如下所示:
  1. server {
  2.     root /www/data;
  3.     location /images/ {
  4.         try_files $uri /images/default.gif;
  5.     }
  6. }
复制代码
文件以 URI 的情势指定,利用当前位置或虚拟服务器上下文中设置的 root 或 alias 指令进行处理。在这种情况下,如果原始 URI 对应的文件不存在,NGINX 将内部重定向到末了一个参数指定的 URI,并返回 /www/data/images/default.gif。
末了一个参数也可以是状态码(直接在等号之前)或位置的名称。在以下示例中,如果 try_files 指令的参数都不能解析为现有文件或目录,则返回 404 错误。
  1. location / {
  2.     try_files $uri $uri/ $uri.html =404;
  3. }
复制代码
在下一个示例中,如果原始 URI 和附加的尾部斜杠的 URI 都不能解析为现有文件或目录,则将哀求重定向到命名位置,该位置将哀求传递给署理服务器。
  1. location / {
  2.     try_files $uri $uri/ @backend;
  3. }
  4. location @backend {
  5.     proxy_pass http://backend.example.com;
  6. }
复制代码
要了解更多信息,请观看“内容缓存”网络研讨会,了解如何显著进步网站的性能,并深入了解 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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

涛声依旧在

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表