一、简介
Nginx是一个高性能的http和反向代理的web服务器,特点是占有内存少,支持高并发,主要用的功能有反向代理、负载均衡、动静分离。
常用命令(到nginx的安装目录下):
启动——./nginx
停止——./nginx -s stop
重载——./nginx -s reload
查看版本——./nginx -v
配置文件的三大部分:
1.全局块
影响整体运行的信息,比如worker数、日志位置、用户组等
2.Events块
主要影响服务器和用户之间的网连接数,如worker_connections,配置单个process的最大并发请求数
3.http块
实际项目中配置最为频繁的了,代理的路径、负载均衡、动静分离等都在这里配置
1)http全局块
包括日志自定义、连接超时时间、单链接的请求数上限等;
2)Server块
一个http块可以有多个server块,而一个server块就相当于一个虚拟主机。
Server块也分为全局server块和location块
a.Server块
配置本虚拟机的监听配置(端口)、名称或IP
b.Location块
一个server块可以有多个location块,这里主要是对nginx服务器收到的请求,除ip和端口外字符串进行匹配(如127.0.0.1:8080/getLIst,则匹配/getList),匹配后进行请求的转发等处理
二、主要的功能
1、反向代理
通过让用户配置路由,实现请求转发的叫正向代理,而nginx则是通过收到客户的请求后,转发到自己配置的服务器,用户不需要知道真正的服务器地址,只需要请求nginx的服务器即可,这种我们称之为反向代理。
2、负载均衡
一个请求对应对台服务器,有对应的配置并提供了4种负载均衡的策略。默认是轮询,除此之外还有权重、ip_hash(每个IP的请求会固定的转发到某台服务器)、fair(根据服务器的响应时间来转发请求)
3、动静分离
把对静态资源的请求和要转发的请求分隔开。还可以对静态资配置过期时间等,降低连接的开销
三、什么是高可用
当nginx服务器宕机后,需要自动切换到备用服务器;
这里是用keepalived中间件来实现,大致步骤是:主从服务器都安装keepalived后,在其配置文件中配置相关信息,并暴漏出一个或多个虚拟的ip,后续请求就直接请求到虚拟IP即可,实现nginx的高可用(主从模式原理)
四、原理
一个nginx启动后,有一个master进程和一个或多个worker进程。