Nginx之坑:完全理解location中的index,配置网站初始页

news/2024/5/9 19:34:50/文章来源:https://blog.csdn.net/qq_32331073/article/details/81945134

文章目录

    • index指令的作用
    • index指令详解
      • 基本内容(中文文档和官方文档都可见):
      • 核心内容(中文文档没有或一笔带过,而官方文档作详细解释):
      • 实例
    • Nginx中文文档
    • Nginx官方文档
    • 吐槽


index指令的作用

  • 在前后端分离的基础上,通过Nginx配置,指定网站初始页。

index指令详解

基本内容(中文文档和官方文档都可见):

  • 该指令后面可以跟多个文件,用空格隔开;
  • 如果包括多个文件,Nginx会根据文件的枚举顺序来检查,直到查找的文件存在;
  • 文件可以是相对路径也可以是绝对路径,绝对路径需要放在最后;
  • 文件可以使用变量$来命名;
index  index.$geo.html  index.0.html  /index.html;
  • 该指令拥有默认值,index index.html ,即,如果没有给出index,默认初始页为index.html

核心内容(中文文档没有或一笔带过,而官方文档作详细解释):

  • Nginx给了三种方式来选择初始页,三种方式按照顺序来执行:

    • ngx_http_random_index_module 模块,从给定的目录中随机选择一个文件作为初始页,而且这个动作发生在 ngx_http_index_module 之前,注意:这个模块默认情况下没有被安装,需要在安装时提供配置参数 --with-http_random_index_module
    • ngx_http_index_module 模块,根据index指令规则来选择初始页;
    • ngx_http_autoindex_module 模块,可以使用指定方式,根据给定目录中的文件列表自动生成初始页,这个动作发生在 ngx_http_index_module之后,即只有通过index指令无法确认初始页,此时启用后的自动生成模块才会被使用。
  • 切记,index指令并不是查到文件之后,就直接拿来用了。它的实际工作方式是:

    • 如果文件存在,则使用文件作为路径,发起内部重定向。直观上看上去就像再一次从客户端发起请求,Nginx再一次搜索location一样。
    • 既然是内部重定向,域名+端口不发生变化,所以只会在同一个server下搜索。
    • 同样,如果内部重定向发生在proxy_pass反向代理后,那么重定向只会发生在代理配置中的同一个server

实例

server {listen      80;server_name example.org www.example.org;    location / {root    /data/www;index   index.html index.php;}location ~ \.php$ {root    /data/www/test;}
}

上面的例子中,如果你使用example.orgwww.example.org直接发起请求,那么首先会访问到“/”location,结合rootindex指令,会先判断/data/www/index.html是否存在,如果不,则接着查看
/data/www/index.php ,如果存在,则使用/index.php发起内部重定向,就像从客户端再一次发起请求一样,Nginx会再一次搜索location,毫无疑问匹配到第二个~ \.php$,从而访问到/data/www/test/index.php

关注作者公众号,随时了解更多干货!


在这里插入图片描述

往期推荐


  • 解决Java开发中使用POI读写Excel时面对的两个麻烦
  • 从简历被拒到收割今日头条offer,我花了一年时间
  • Redis之坑:完全理解Redis事务
  • 完全理解TCP/UDP、HTTP长连接、Websocket、SockJS/Socket.IO以及STOMP的区别和联系(改)
  • Nginx之坑:完全理解location中的index,配置网站初始页(改)
  • 安全(一)— 完全理解RSA加密算法
  • Spring AOP之坑:完全搞清楚advice的执行顺序

Nginx中文文档

index


syntax: index file [file…]
default: index index.html
context: http, server, location
Directive determines the file(s) which will be used as the index. It’s possible to use variables in the name of file. The presence of the files is checked in the order of their enumeration. A file with an absolute path can be put at the end. Example using a variable:

index  index.$geo.html  index.0.html  /index.html;

If you want to automatically generate an index from a directory listing, useautoindex on.

详情可见:《HttpIndex模块》《Nginx中文文档》


Nginx官方文档

The ngx_http_index_module module processes requests ending with the slash character (‘/’). Such requests can also be processed by the ngx_http_autoindex_module and ngx_http_random_index_module modules.

Example Configuration

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

Directives

Syntax: index file …;
Default: index index.html;
Context: http,server, location

Defines files that will be used as an index. The file name can contain variables. Files are checked in the specified order. The last element of the list can be a file with an absolute path. Example:

index index.$geo.html index.0.html /index.html;

It should be noted that using an index file causes an internal redirect, and the request can be processed in a different location. For example, with the following configuration:

location = / {index index.html;
}location / {...
}

a “/” request will actually be processed in the second location as “/index.html”.

详情可见:《Nginx官方文档》


吐槽

看到这里你难道还不想吐槽吗?

  • 《Nginx中文文档》结果内容不是中文,很滑稽但还能理解;
  • 《HttpIndex模块》基本内容抄出来了,核心内容省略了?但这难道不是误人子弟,不可避免的要踩这个坑,而且浪费了不少时间!!

所以,搞IT,如果你已经入门,请认准《官方文档》《新框架(新工具,语言)从入门到精通的正确姿势》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_854336.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2019fresco依赖_在2019年建立一个无依赖网站

我的新改进个人网站的屏幕截图 经过几年的基本无视后,我最近决定是时候刷新我的个人站点了 。 先前的迭代结合了Gulp和Bower,并结合了Susy(网格系统的Sass库)(版本2,而不是最新的版本3)。 我上一…

2007最牛X网站收集

50. 经典桌面 这个名叫东子的偏执狂不知花了多少工夫,mydeskcity.com的内容量达到了40G,很多图片都是站长本人在国外搜集后,自己进行加工的作品。 http://www.mydeskcity.com/ 49. 画猪头 在指定的对话框里面随便画一个猪头&#…

纯css实现网站导航条下拉效果

不用javascript效果实现导航条的下拉效果。 纯css属性实现&#xff0c;主要应用到绝对定位中的left&#xff1a;auto和 left&#xff1a;-9999px&#xff1b;来隐藏或者鼠标经过的时候显示下拉菜单。 下面是代码&#xff1a; <!DOCTYPE html> <html> <head&g…

网站右侧导航条的玩法

最近心情很不好&#xff0c;各种工作生活上面的事情&#xff0c;让我很是受伤&#xff0c;刚出来工作感觉程序员确实是个神奇的行业&#xff0c;一个个都觉得自己的智商挺高的&#xff0c;哎&#xff0c;每天起早贪黑的上下班&#xff0c;还天天受气&#xff0c;真是日了够了&a…

谷歌浏览器调试网站技巧教程

1.样式的调试&#xff0c;盒子模型。 2找到hover样式 3 4.样式所对应的标签&#xff0c;所在文件名

mouseover事件,鼠标移上去数据出不来且数据错乱

我要做如下的效果&#xff0c;就是鼠标移上去有一个信息提示框 但是我用mouseover一直就是鼠标移上去第一下&#xff0c;直接位置那里是空的&#xff0c;然后再次移动之后&#xff0c;数据一直都是错乱的&#xff0c;比如&#xff0c;从第一个人移动到第二个人那里&#xff0c;…

MySQL在大型网站的应用架构演变

可扩展性 架构的可扩展性往往和并发是息息相关&#xff0c;没有并发的增长&#xff0c;也就没有必要做高可扩展性的架构&#xff0c;这里对可扩展性进行简单介绍一下&#xff0c; 常用的扩展手段有以下两种&#xff1a; Scale-up : 纵向扩展&#xff0c;通过替换为更好的机器…

互联网网站架构升级----消息中间件的实现方案

消息中间件对目前大中型互联网来说是非常重要的&#xff0c;在业务数据流动中仅次于RPC服务调用&#xff0c;担负着越来越复杂的网站业务从主流程上解耦的重要责任&#xff1b; 伦理片 http://www.gxuy.com/ 从目前互联网对消息中间件的需求来看应该分为两种类型&#xff0…

20 步打造完美网站布局设计

英文原文&#xff1a;Pro tips: 20 steps to the perfect website layout&#xff0c;编译&#xff1a;蝶月猋欢yeeyan Claudio Guglieri 在纽约广告公司 B-Reel 任职总监&#xff0c;他撰写了本网站设计培训指南&#xff0c;旨在帮助您了解设计网站布局的全过程。 开始讲述设计…

Bootstrap Jetstrap-快速构建你的网站

Boostrap来自于Twitter&#xff0c;是一个基于html&#xff0c;css&#xff0c;javascript的时尚的、直观的、强大的流行前端框架及交互组件集&#xff0c;可用于快速&#xff0c;简单构建你的网站。 Bootstrap拥有以下特性&#xff1a; 由匠人建&#xff0c;为匠人用 和您一样…

HTML一键打包IPA(苹果IOS应用)工具 网站打包 APP

工具简介 HTML一键打包IPA&#xff08;苹果应用&#xff09;工具可以把本地HTML项目或者网站打包为一个苹果应用IPA文件&#xff0c;无需编写任何代码&#xff0c;支持在苹果设备上安装运行。 打包工具群&#xff1a;429338543 下载地址&#xff1a; 点击进入下载页面 加群获…

2016谷歌重返中国,体验Google中国开发者网站

我早上起床时拿起手机看新闻&#xff0c;一个标题瞬间吸引了《Google搜索要重返中国&#xff0c;但这次是靠中国开发者找回 “丢失的那6年”》&#xff0c;激动点开一看&#xff0c;文章巴拉巴拉一大推&#xff0c;选择性阅读完后&#xff0c;怀着无法按捺的心情在没翻墙的手机…

求助关于java的setDefaultCloseOperation() 的位置问题!

自己摸索搞不懂&#xff0c;我把setDefaultCloseOperation() 放在 while(jf.isShowing()) 之后就不会执行 int x 700 int y 300 int width 500 int height 500 JFrame jf new JFrame("测试"); jf.setBounds(x, y, width, height); // 窗口的横竖位置和横竖长度 …

jsp获取网站域名 域名解析

部署主机如果有弄域名解析的话 访问http://www.domain.com时会自动请求到相应的页面http://ip:port/webApp/index.jsp 此时在index.jsp代码 Html代码 StringbasePathrequest.getScheme()"://"request.getServerName()":"request.getServerPort()path"…

50个好网站,从此上网不再虚度!

《意林》&#xff0c;短小精悍的小故事&#xff0c;每次都能打动读者的心扉&#xff01;http://www.yilin.net.cn 丁香园&#xff0c;一个生物学和医学专业的挚爱。http://www.dxy.cn 生物谷&#xff0c;看了名字就知道是生物类的网站。http://www.bioon.com 《环球科学》杂志的…

可扩展、高可用、负载均衡网站架构设计方案

可扩展、高可用、负载均衡网站架构设计方案作者&#xff1a;田逸(sery163.com) 本作品已刊登在《IT实验室周报》第6期第6版 基本需求: 1、高可用性&#xff1a;将停止服务时间降低到最低甚至是不间断服务 2、可扩展性&#xff1a;随着访问的增加&#xff0c;系统具备良好的伸缩…

大流量网站的底层系统架构

动态应用&#xff0c;是相对于网站静态内容而言&#xff0c; 是指以c/c、php、Java、perl、.net等 服务器端语言开发的网络应用软件&#xff0c;比如论坛、网络相册、交友、BLOG等常见应用。动态应用系统通 常与数据库系统、缓存系统、分布式存储系统等密不可分。 大型动态应用…

2015进口跨境电商网站大全

常用跨界电商企业网址跨境电商其它平台&#xff1a; 跨境电商其它跨境电商资讯类跨境电商有线下店

[译]MVC网站教程(四):MVC4网站中集成jqGrid表格插件(系列完结)

目录 1. 介绍 2. 软件环境 3. 在运行示例代码之前&#xff08;源代码 示例登陆帐号&#xff09; 4. jqGrid和AJAX 5. GridSettings 6. GridModelBinder 7. LinqExtensions 8. 数据实体类和LINQ 9. 在…

读书笔记:《大型网站系统与Java中间件实践》

文章目录大型网站演进数据库读问题写问题应用应对的挑战引入服务层框架&#xff1a;多机房问题序列化与反序列化问题异步调用线程池隔离服务请求合并数据访问层一致性的基础理论--CAP/BASE多机的Sequence问题消息中间件功能消息一致性避免对消息中间件的强依赖级联、嵌套topic/…