如何深入理解nginx.conf配置文件(Part2)的复杂细节?

摘要:上一篇文章概述与罗列了"全局配置块、events配置块、http全局块"的基本配置与属性,本篇文章将继续深入server块的配置项,以及相关应用。 上篇文章地址:Nginx基础02:配置文
上一篇文章概述与罗列了"全局配置块、events配置块、http全局块"的基本配置与属性,本篇文章将继续深入server块的配置项,以及相关应用。 上篇文章地址:Nginx基础02:配置文件nginx.conf(Part1) 如何使用本篇文章 本文作为一篇高度总结和罗列nginx.conf中所有的基础配置项,循规蹈矩地按照文章的顺序阅读的方式不可取 笔者建议所有读者,先看目录,掌握Nginx都有哪些基础的配置块,再想要了解那一个配置块时,再详细去看 作为一篇字典类的文章,建议读者善用浏览器的全文查找功能,按Ctrl + F调出查找功能,搜索你感兴趣的关键字,针对性地学习 内容导览 http-server块 公有配置 防盗链 地址重写 流程控制 listen: 监听端口 参数 实例 server_name: 指定域名 location: URL映射 URI映射 路径替换 反向代理 SSL 访问控制 内置变量 正式开始前,还是再次强调server块在配置文件中的位置 http-server块 server块和“虚拟主机”的概念有密切联系 虚拟主机技术主要应用于HTTP、FTP及EMAIL等多项服务,将一台服务器的某项或者全部服务内容逻辑划分为多个服务单位,对外表现为多个服务器,从而充分利用服务器硬件资源。从用户角度来看,一台虚拟主机和一台独立的硬件主机是完全一样的。 在使用Nginx服务器提供Web服务时,利用虚拟主机的技术就可以避免为每一个要运行的网站提供单独的Nginx服务器,也无需为每个网站对应运行一组Nginx进程。虚拟主机技术使得Nginx服务器可以在同一台服务器上只运行一组Nginx进程,就可以运行多个网站。 一个http块都可以包含多个server块,而每个server块就相当于一台虚拟主机,它内部可有多台主机联合提供服务,一起对外提供在逻辑上关系密切的一组服务(或网站)。 公有配置 error_page指令 配置Nginx出现错误时,返回自定义页面以及错误代码,或将浏览器重定向到其他URI。 出现404错误时,响应根目录下的html文件:error_page 404 /404.html; 防盗链 valid_referers none | blocked | server_names | string... 功能:控制是否需要检验referer,设定校验referer时的校验值 应用场景:防盗链 参数 none:如果Header中的Referer为空,允许访问 blocked:在Header中的Referer不为空,但是该值被防火墙或代理进行伪装过,如不带"http://" 、"https://"等协议头的资源允许访问。 server_names:指定具体的域名或者IP。也就是说Request中的Referer必须为这里指定的参数,才让访问 string: 可以支持正则表达式和*的字符串。
阅读全文