如何深入理解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: 可以支持正则表达式和*的字符串。
