Nginx学习

Nginx命令

  1. ./nginx:启动Nginx;
  2. ./nginx -s stop:关闭Nginx,立即关闭,不管有没有已接受的请求;
  3. ./nginx -s reload:重新加载nginx配置文件,热加载,不需要停止nginx然后重新启动;
  4. ./nginx -s quit:关闭nginx,不过会处理已接受的请求;
  5. ./nginx -t:校验配置文件是否正确,如果配置文件正确会输出xxxok的内容;

Nginx进程

Nginx的进程分为master进程:主进程,worker进程:工作进程。master进程负责管理监控worker进程,worker进程负责处理请求,一个master进程可以有多个worker进程。如果worker进程出现问题,那么master会关闭它,重新启动一个worker进程去干活。mater进程就像老板,而worker进程是干活的人。


当开发者执行了某个命令后,master进程会把这些命令发送给每一个worker;每一个worker进程会处理与其连接的客户端的请求。

Worker抢占机制


当客户端发送请求后,worker进程会去争抢这个请求,nginx设置了accept_mutex互斥锁,哪个worker进程抢到了accept_mutex互斥锁,请求就由哪个worker进程处理。

请求处理机制


worker处理请求是基于异步非阻塞模型epoll去处理的,当Client1的请求阻塞了,worker1会继续去处理Client2的请求,这样就大大提高了nginx的并发能力;而传统的服务器是基于同步阻塞的,当Client1的请求被阻塞后,会新建一个进程去处理Client2的请求。

总结

1、为什么要使用多个worker进程?
如果一个worker进程受到黑客攻击或者由于其它某种原因出现问题,那么其它worker进程会继续处理请求,不会停止服务。

2、worker进程设置为几个比较合适?
worker数和服务器cpu数相等比较合适。

参考

  • Nginx教程

Nginx学习之Nginx进程相关推荐

  1. Nginx学习(一)——Nginx基础知识

    目录 1.Nginx学习(一)--Nginx基础知识 2.Nginx学习(二)--配置文件.反向代理与负载均衡 3.Nginx搭建HTTPS服务器 一.初试Nginx 一.下载安装 1.安装必要的一些 ...

  2. 【005】Nginx学习笔记-Nginx真实IP

    [005]Nginx学习笔记-Nginx真实IP 真实IP 客户端真实IP 深入理解真实IP 实验一 实验二: 多个代理服务器的情况 实验三:利用realip模块获取客户端真实IP 实验四:伪装请求头 ...

  3. Nginx学习之Nginx高性能的实现原理

    Nginx 采用的是多进程(单线程) & 多路IO复用模型,使用了 I/O 多路复用技术的 Nginx,就成了"并发事件驱动"的服务器,同时使用sendfile等技术,最终 ...

  4. 【Nginx学习】Nginx代理mysql数据库

    文章目录 一.使用docker安装Nginx 1.安装Nginx 2 .启动容器 二.命令查看端口 1.查看Liunx端口占用 2.命令nmap端口扫描 3.docker容器的本机ip地址 三.doc ...

  5. Nginx学习之六-nginx核心进程模型

    一.Nginx整体架构 正常执行中的nginx会有多个进程,最基本的有master process(监控进程,也叫做主进程)和woker process(工作进程),还可能有cache相关进程. 一个 ...

  6. Nginx学习之四-Nginx进程同步方式-自旋锁(spinlock)

    自旋锁简介 Nginx框架使用了三种消息传递方式:共享内存.套接字.信号. Nginx主要使用了三种同步方式:原子操作.信号量.文件锁. 基于原子操作,nginx实现了一个自旋锁.自旋锁是一种非睡眠锁 ...

  7. nginx 学习笔记--Nginx正则表达式之匹配操作符

    nginx可以在配置文件中对连接进行判断,已达到防止rewrite.盗链.对静态资源设置缓存以及浏览器限制等目的: 字符串表达式支持正则表达式,能设定大小写是否敏感. 1.~为区分大小写的匹配. 2. ...

  8. Nginx学习---Nginx的详解_【all】

    1.1. Nginx简介 1.什么是nginx nginx:静态的,开源的www软件,可以解析静态的小文件(低于1M ),支持高并发占用较发少的资源(3W并发,10个进程,内存150M),跨平台 te ...

  9. 【学习笔记】启动Nginx、查看nginx进程、查看nginx服务主进程的方式、Nginx服务可接受的信号、nginx帮助命令、Nginx平滑重启、Nginx服务器的升级

     1.启动nginx的方式: cd /usr/local/nginx ls ./nginx -c nginx.conf 2.查看nginx的进程方式: [root@localhost nginx] ...

最新文章

  1. 初识contiki(2.7版本)
  2. Basler相机SDK相关问题收集与知识汇总
  3. linux c之解决array subscript is not integer和AF_NET not undeclared
  4. 金蝶显示服务器异常,金蝶提示云服务器异常
  5. Java提高篇 —— Java内部类详解
  6. 虚拟机Ubuntu蓝屏闪屏解决方法
  7. putty xshell远程连接Linux及密钥认证
  8. geth运行报错zsh: exec format error: ./geth
  9. MySQL 执行原生sql
  10. 20162303 实验五 网络编程与安全
  11. 无刷电机反电动势过零检测
  12. ThinkPHP 数据库操作(一) : 连接数据库
  13. 认真学习系列:Linux原理——《趣谈linux》学习笔记
  14. 555定时器的应用——单稳态触发器
  15. Python全栈(四)高级编程技巧之4.元类编程、迭代器和生成器
  16. 2019年美赛B题思路详解
  17. 学计算机买小米air可以么,Mi 小米 Air13.3 笔记本电脑 三个月使用体验
  18. 咸鱼CAD笔记—CAD基础操作
  19. 人工智能和网络安全,一场正发生的挑战
  20. 矩阵微分常用公式整理

热门文章

  1. risc-v与SBI与ABI
  2. formdata传递参数_post请求中的参数形式和form-data提交数据时取不到的问题
  3. 手把手教你如何搬运短视频!日赚800+,简单易操作!
  4. 计算机系统的备份与还原实验报告,实验报告系统备份和恢复.doc
  5. js如何获取input的value值
  6. 运营领域如何更好的提问?
  7. listview设置item高度或间距
  8. 集合论悖论的一点思考
  9. js基本类型与引用类型
  10. Docker镜像源修改