nginx配置文件

112 阅读2分钟

全局块:从配置文件到events块之间的内容,主要会设置一些影响nginx服务器整体运行的配置指令,主要包括配置运行nginx服务器的用户,允许生成的worker process数,进程pid存放路径,日志存放路径和类型以及配置文件的引入。

events块:主要影响nginx服务器与用户的网络连接,常用的设置包括是否开启对多work process下的网络连接进行序列化,是否允许同时接受多个网络连接,选取哪种事件驱动模型来处理连接请求,每个workprocess可以同时支持的最大连接数。

http块:

  • http全局块:配置的指令包括文件引入,MIME-TYPE定义,日志自定义,连接超时时间,单链接请求次数上限等。
  • server块:与虚拟主机有密切关系,虚拟主机从用户角度看,和一台独立的硬件主机是完全一致的,该技术的产生是为了节省服务器成本;每个http块可以包含多个server块。每个server块相当于一台虚拟主机

location匹配规则:

  1. 精准匹配:精准匹配的符号标记为“=”,location = /lyh,在所有的匹配规则中,精准匹配的优先级是最高的。
  2. 普通匹配:普通匹配的符号标记为“^”,location ^ /lyh(注意~ 与 /之间有空格,"^~"是可以省略的,写为location = /lyh),如果一个URL命中多个location普通匹配,则最长的location普通匹配获胜。
  3. 正则匹配:
正则匹配的类型按照类型符号的不同可以细分为以下4种:

(1)~:标准正则匹配,区分字母大小写,进行正则表达式测试,若测试成功,则匹配成功。

(2)~*:标准正则匹配,不区分字母大小写,进行正则表达式测试,若测试成功,则匹配成功。

(3)!~:反向正则匹配,区分字母大小写,进行正则表达式测试,若测试不成功,则匹配成功。

(4)!~*:反向正则匹配,不区分字母大小写,进行正则表达式测试,若测试不成功,则匹配成功。下面是一个正则匹配的例子,可以匹配以hello.php或hello.asp结尾的URL请求。

如果配置文件中存在多个正则匹配location,那么它们之间的规则是顺序优先的,只要匹配到第一个正则类型的location,就停止后面的正则类型的location测试。

(location =) > (location ^~ 路径) > (location ~,~* 正则顺序) > (location 完整路径)  >  (location 部分起始路径) > (/)