Nginx的配置文件是其核心所在,它定义了Nginx服务器的各种行为和参数。通过灵活配置,可以实现反向代理、负载均衡、静态资源服务等功能。

1

Nginx的配置文件介绍

Nginx配置文件揭秘:掌握核心设置,让网站飞一般地运行!_运维

1、nginx.conf介绍

Nginx的配置文件是nginx.conf,它在/data/program/nginx/conf目录下

[root@base-1 conf]# pwd
/data/program/nginx/conf

nginx.conf配置文件里有3个部分,分别是:全局块,events块,http块;在http块中又包含http全局块,多个server块;每个server块中又包含server全局块以及多个location块。

  1. 全局块是配置文件从开始到events块之间的内容,主要有worker_processes,它表示工作进程数,一般设置为服务器CPU的核数。
  2. events块主要有worker_connections,它表示Nginx服务器与用户的网络连接数,Nginx支持的网络连接数就是worker_processes配置数字乘以worker_connections配置数字,假如worker_processes=4,worker_connections=1024,那么该Nginx服务器支持的连接数就是4 X 1024 = 4096个。
  3. http块是Nginx服务器配置中的重要组成部分,反向代理,负载均衡,动静分离等多数功能都在这里配置。
  4. server块里进行虚拟主机的配置,有3种配置,分别是基于IP、基于端口号、基于域名的虚拟主机。
  5. location块在整个Nginx配置文档中起着非常重要的作用,很多功能的实现需要在location块中进行配置。

2、location使用介绍

配置语法介绍

location的语法结构

location [ = | ~ | ~* | ^~ ] uri { ... }

其中,uri是待匹配的请求字符串,可以是标准uri(不含正则表达式的uri),也可以是正则uri(使用正则表达式的uri);方括号里的部分是可选项,用来表示请求字符串与uri的匹配方式。“=”,用于标准uri前,要求请求字符串与uri完全匹配,一般称之为精准匹配“^~”,用于标准uri前,一般称为前缀匹配“~*”,用于表示uri包含正则表达式,不区分大小写“~”,用于表示uri包含正则表达式,且区分大小写

配置规则介绍
  • 在没有可选项的情况下,指的就是通用匹配
  1. Nginx服务器首先在server块的多个location中搜索是否有标准uri和请求字符串匹配,如果有多个可以匹配,就记录匹配度最高的一个。
  2. 然后,服务器再用location块中的正则uri和请求字符串匹配,当第一个正则uri匹配成功,结束搜索,并使用这个location块处理该请求;
  3. 如果正则匹配全部失败,就使用刚才记录的匹配度最高的location块处理该请求。

使用 “=” 修饰uri,指的是精准匹配

1.如果匹配成功,就停止继续向下搜索,立即用匹配到的location块处理该请求。

使用 “^~” 修饰uri,指前缀匹配

1.要求Nginx服务器找到标识uri和请求字符串匹配度最高的location后,立即使用此location块处理该请求,而不再使用正则uri匹配。

使用 “~*”或者 “~” 修饰uri,指正则匹配

1.正则匹配会覆盖通用匹配。

规则的优先级

从上面的配置规则可以看出,精准匹配的优先级最高,前缀匹配的优先级第二,正则匹配第三。

nginx.conf文件简化版配置示例

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }
        # redirect server error pages to the static page /50x.html
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

2

Nginx的实例演示环境介绍

Nginx配置文件揭秘:掌握核心设置,让网站飞一般地运行!_运维_02

1、实例演示环境介绍(Centos+Nginx+Tomcat)

操作系统是CentOS  7.5

Nginx服务器版本是nginx-1.14.1,IP=192.168.1.8

Tomcat服务器版本是apache-tomcat-8.5.35,两台Tomcat服务器

Tomcat1的IP=192.168.1.9

Tomcat2的IP=192.168.1.10

2、架构图如下:

Nginx配置文件揭秘:掌握核心设置,让网站飞一般地运行!_Nginx_03

至此Nginx的基础介绍完毕,后续将进行实例演示。