Nginx原理简述

Nginx原理简述Nginx 原理简介 1 nginx 的作用反向代理 隐藏服务器的地址 负载均衡 轮询 权重 ip hash 动静分离 nginx 作为静态资源服务器 对 nginx 的主要操作都是在改配置文件 2 nginx 原理 nginx 是以进程为单位的 这里是进程不是线程 每个进程有自己独立的资源 不用再像线程一样加锁了 如果你刚下载好了 nginx 你启动之后 打开任务管理器看一下有几个 nginx 进程 如果不出意外 它会有两个 nginx 进程 为什么会有两个进程呢 原理解析 nginx 里面 有两

Nginx原理简介

1. nginx的作用

  • 反向代理(隐藏服务器的地址)
  • 负载均衡(轮询、权重、ip_hash)
  • 动静分离(nginx作为静态资源服务器)

    对nginx的主要操作都是在改配置文件。

2.nginx原理

nginx是以进程为单位的,这里是进程不是线程。每个进程有自己独立的资源,不用再像线程一样加锁了。

如果你刚下载好了nginx,你启动之后,打开任务管理器看一下有几个nginx进程,如果不出意外,它会有两个nginx进程。

为什么会有两个进程呢?

原理解析
nginx里面,有两种进程,一个是master进程,还有一个是worker进程。这个master进程,当有请求进来时,它会通知worker进程来处理这个请求。当有多个worker进程时(worker的数量取决于配置文件中work_process的值,默认为1)就会来争抢,一个请求只会被一个worker进程处理。

worker进程中只有一个主线程,主线程通过异步非阻塞的方式来处理拿到的请求,这个异步非阻塞可以理解为做循环不停的处理各种请求。这里的工作方式是这个主线程不停的在不同请求之间来回切换,这种切换不是不同线程之间的上下文切换,基本不损耗什么资源。这也是为什么nginx能够高并发的处理请求的关键原因。

多线程的上下文切换:当CPU不再执行当前线程,切换到另一个线程时,需要保存当前线程的信息,如计数器、虚拟机栈中各个栈帧的信息,并且还要读取另一个线程的这些东西,势必会影响效率。

有关worker进程中具体的处理方式,暂未了解,后续将会更进。

更新于2020.8.17晚

上述有关worker进程中处理多个连接请求的地方说的不是很好,worker进程采用多路复用的IO模型epoll,才使得一个进程能够处理大量的请求,至于它怎么实现的,底层原理是什么,这涉及到IO模型以及Linux的用户态和内核态的相关知识,目前我也不是很清楚。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233155.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 二进制减法图解_二进制加法的算法图解

    二进制减法图解_二进制加法的算法图解二进制减法类似于十进制的减法,我们从十进制的减法来推出二进制减法如何进行运算。十进制减法例如74323-47562=26761的运算。灰色部分为计算过程,绿色字为被减一得到的数,红色字为借一后得到的数。在运算过程中,从右往左逐位进行计算。3-2=1;2不够减6,向前借一后加10变成12;12-6=6;3在上一步被借一所以减为2,2不够减5,…

    2022年9月25日
    3
  • pki基于对称加密算法保证网络通信安全_网络安全体系结构

    pki基于对称加密算法保证网络通信安全_网络安全体系结构PKI(PublicKeyInfrastructure的缩写)即”公开密钥体系”,是一种遵循既定标准的密钥管理平台,它能够为所有网络应用提供加密和数字签名等密码服务及所必需的密钥和证书管理体系,简单来说,PKI就是利用公钥理论和技术建立的提供安全服务的基础设施。PKI技术是信息安全技术的核心,也是电子商务的关键和基础技术。原有的单密钥加密技术采用特定加密密钥加密数据,而解密时用于解密的密

    2022年8月22日
    9
  • MES導入工單StoredProcedure[通俗易懂]

    MES導入工單StoredProcedure[通俗易懂]USE [MES]GO/****** Object:  StoredProcedure [dbo].[SP_WKO_IMP]    Script Date: 11/13/2008 10:30:25 ******/SET ANSI_NULLS OFFGOSET QUOTED_IDENTIFIER ONGOALTER PROCEDURE [dbo].[SP_WKO_

    2022年7月26日
    5
  • 如何解决Ubuntu 14.04编译make menuconfig时缺少’ncurses-devel’库[通俗易懂]

    如何解决Ubuntu 14.04编译make menuconfig时缺少’ncurses-devel’库[通俗易懂]今天在使用64位的Ubuntu14.04系统编译linux源码的makemenuconfig命令时,得到了一个错误的提示,说我没有安装相应的库:Unabletofindthencurseslibrariesortherequiredheaderfiles.’makemenuconfig’requiresthencurseslibraries.Instal…

    2022年6月2日
    39
  • Winscp连接不上Kali

    Winscp连接不上Kali解决Winscp无法连接kali的问题

    2022年9月13日
    2
  • HttpCanary教程(tcpnodelay设置)

    HttpClient优化思路1、池化2、长连接3、httpclient和httpget复用4、合理的配置参数(最大并发请求数,各种超时时间,重试次数)5、异步6、多读源码1.背景我们有个业务,会调用其他部门提供的一个基于http的服务,日调用量在千万级别。使用了httpclient来完成业务。之前因为qps上不去,就看了一下业务代码,并做了一些优化,记录在这里。先对比前后:优化之…

    2022年4月16日
    289

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号