Nginx

Nginx是一款轻量级的web服务器、反向代理服务器。
特点:内存占用少,启动快,高并发能力强。
方向代理:外网不能直接访问到api,需要通过nginx进行请求转发,间接地访问。
Nginx_第1张图片

Nginx的Master-Worker模式

在查询nginx的进程时通常会显示master和其他worker的nginx进程
在这里插入图片描述
Nginx_第2张图片
worker个数可在nginx.conf中设置:worker_processes 2;该数字即为worker数。

master进程的作用:读取并验证配置文件nginx.conf;管理worker进程;master进程只有一个,worker可以有多个。
worker进程的作用:worker才是真正处理请求的进程,每个worker进程都维护一个线程(避免线程切换),处理连接和请求;worker个数可在nginx.conf中设置:worker_processes 2;该数字即为worker数,一般和cpu个数有关。并且,worker是以普通用户的身份运行的,增加了程序的安全性。

Nginx热部署

当通知master重读配置文件时,master会进行语法判断,如果存在语法错误,则返回错误,不进行装载;如果语法正确,也不会立即将新的配置装载到其它worker中,而是旧worker处理完请求后,将旧配置的worker杀死,新的请求使用新配置创建新的worker进行处理。

Nginx高并发下的高效处理

IO操作的请求比较耗时,如果一直等待处理完再处理下一个请求,这无疑是非常低效的。
Nginx采用了Linux的epoll模型,epoll模型基于事件驱动机制,可以监控多个事件是否准备完毕,如果完毕,就放到epoll队列中(异步),worker只需要从epoll队列中循环处理。

Nginx挂了怎么办

Nginx作为网关入口,非常重要。
Keepalived+Nginx实现高可用。
Keepalived是一个高可用解决方案,主要是用来防止服务器单点发生故障,可以通过和Nginx配合来实现,Web服务的高可用,
思路

  1. 请求先通过Keepalived(这就是所谓虚拟IP,VIP),不直接打到Nginx上;
  2. Keepalived监控Nginx的生命状态(提供一个自定义的脚本,定期检查Nginx进程状态,进行权重变化,实现Nginx的故障切换)
    Nginx_第3张图片

你可能感兴趣的:(Linux,nginx,https,运维)