xiwenAndlejian / my-blog

Java基础学习练习题
1 stars 0 forks source link

Nginx 学习笔记(一) #12

Open xiwenAndlejian opened 5 years ago

xiwenAndlejian commented 5 years ago

Nginx 学习笔记(一)

Nginx官方文档

常用命令

启动、停止和重新加载配置

这是一个相当常用的命令,经常用在修改配置文件后,重新加载配置。

命令:nginx -s signal

其中signal有以下可选项:

注意:此命令需要在启动 nginx 的统一用户下执行。

除了nginx -s stop可以关闭 nginx 进程外,也可以使用:kill -s QUIT nginxPid

使用ps -ax|grep nginx可以显示(当前用户下)所有正在运行的 nginx 进程的列表

检查配置文件是否有误(获取配置文件地址)

这是一个相当有用的命令,自从有了它,我就不需要记住任意一台服务器的 nginx 配置文件路径了。

命令:nginx -t,检测配置文件语法,并测试该配置文件。

执行之后会有如下类似输出:

nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful

这个命令不仅会检查当前 nginx 配置文件的语法,还会输出当前配置文件路径。

配置文件结构

nginx 由模块组成,这些模块由配置文件中制定的指令控制。指令又分为简单指令和块指令。

简单指令:包含由空格(`)分隔的名称和参数,并且以分号(;`)结尾。

块指令与简单指令具有相同的结构,但它不是以分号结尾,而是以大括号({})包围的一组附加指令结束。如果块指令可以在大括号内包含其他指令,则称为上下文(eg:eventshttpserverlocation

格式大概如下:

events {

}
http {
    server {
        location {

        }
    }
}
# 注释以#开头

location

在这里引用一文弄懂Nginx的location匹配

一下是部分节选内容

两种语法
location [ = | ~ | ~* | ^~] uri { ... }
location @name { ... }
修饰符(可选)

注意:这里不再进行后续的查找是因为,当存在多个匹配的 location 块时, nginx 将选择最长前缀的的块(最准确的)。我们最常用的/前缀块,只有当其他所有 location 块都无法提供匹配时,才会使用此块。

匹配过程
  1. 检查使用前缀字符串定义的 location ,将选择最长的匹配项纪录下来。
  2. 如果找到了精准匹配(=)的 location,结束查找,使用它的配置。
  3. 按照顺序查找使用正则定义的 location,如果匹配则停止查找,使用此配置。
  4. 如果没有匹配,则使用前面纪录的最长匹配前缀字符的 location 配置。

命令行参数