nginx

Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP(邮件收发协议)代理服务器;Nginx可以作为一个HTTP服务器进行网站的发布处理,另外Nginx可以作为反向代理进行负载均衡的实现。

三个主要应用场景

1、静态资源服务(通过本地文件系统提供服务)2、缓存、负载均衡服务器3、API服务(OpenResty)

单核cpu:一次只运行一个进程,设置运行的时间1ms,对于所有进程来说都希望可以争抢到cpu的执行权

死循环:密集型io;cpu无法释放

内核空间和用户空间

master进程主要来管理worker进程,具体包括以下的功能:

1.接收来自外界的信号

2.处理配置文件读取

3.创建绑定和关闭套接字

4.启动终止和维护配置的工作进程数

5.当worker进程退出后,会自动重启新的worker进程

server_name与Host的匹配优先级如下:

 1)首先选择所有字符串完全匹配的server_name,如nginx.2367.com。

2)其次选择通配符在前面的server_name,如*.2367.com。

3)再次选择通配符在后面的server_name,如nginx.2367.*。

4)最后选择使用正则表达式才匹配的server_name,如~^.testweb.com$如果都不匹配1、优先选择listen配置项后有default或default_server的2、找到匹配listen端口的第一个server块

配置块:location

location语法:location[=|~|~*|^~|@]/uri/{...}配置块:serverlocation会尝试根据用户请求中的URI来匹配上面的/uri表达式,如果可以匹配,就选择location{}块中的配置来处理用户请求。当然,匹配方式是多样的,下面介绍location的匹配规则。

~表示执行一个正则匹配,区分大小写;

~*表示执行一个正则匹配,不区分大小写;

^~表示普通字符匹配。使用前缀匹配。如果匹配成功,则不再匹配其他location;

=进行普通字符精确匹配。也就是完全匹配;

@它定义一个命名的location,使用在内部定向时,例如error_page,try_files

等号类型(=)的优先级最高。一旦匹配成功,则不再查找其他匹配项前缀普通匹配(^~)优先级次之。不支持正则表达式。使用前缀匹配,如果有多个location匹配的话,则使用表达式最长的那个正则表达式类型(~~*)的优先级次之。一旦匹配成功,则不再查找其他匹配项常规字符串匹配,如果有多个location匹配的话,则使用表达式最长的那个

nginx常用命令

1、查看Nginx的版本号:nginx-V

2、停止nginx-sstop

3、退出nginx-squit

4、重启加载配置nginx-sreload

5、配置文件启动nginx-c</path/to/config>为Nginx指定一个配置文件,来代替缺省的

6、nginx-t不运行,而仅仅测试配置文件。nginx将检查配置文件的语法的正确性,并尝试打开配置文件中所引用到的文件。

nginx停止命令,等所有请求结束后关闭服务

Kill -QUIT nginx主进程号

重新载入配置

kill -HUP nginx主进程号

原文地址:https://www.cnblogs.com/gaosf/p/14534001.html