nginx

nginx

到底是什么?

​ 高性能的的Http和反向代理web服务器,核心特点占用内存小,并发性能高

特点

​ 跨平台:Nginx可以再大多数类unix的操作系统上编译运行,而且也存在windows版本。
​ nginx上手容易,配置比较简单。
​ 高并发,性能好
​ 稳定性也特别好,宕机的概率很低。

使用场景

  • HTTP服务器(web服务器)

    性能非常高,非常注重效率,能够经受高负载的考验。
    支持5W个并发连接数,CPU和内存的占用也非常低,1W个没有活动的连接才占用2.5M的内存

  • 反向代理服务器

    正向代理

    浏览器需要配置代理

    在这里插入图片描述

    反向代理

    ​ 浏览器发送请求到反向代理服务器,由反向代理服务器选择原始服务器提供服务响应结果,最终再返回给客户端浏览器。

    正向代理反向代理
    向服务器端屏蔽用户信息向浏览器(服务端)屏蔽服务器
    用户使用代理服务器,访问用户指定的地址用户直接访问代理服务器,由代理服务器匹配对应的服务器响应
    需要在浏览器配置代理服务器信息浏览器无需配置仅可以访问指定的代理服务器地址,才可获取响应
    在这里插入图片描述在这里插入图片描述

|

  • 负载均衡服务器

    负载均衡:

    ​ 当一个请求到来的时候。在nginx的反向代理服务器,根据用户请求去找到一台原始的服务器来处理请求,这叫做反向代理。那么在存在多台目标服务器的情况下,匹配那一台服务器来处理请求的过程即为负载均衡

  • 动静分离

在这里插入图片描述

常用命令

主要命令:

​ ./nginx 启动nginx

​ ./nginx -s stop 终止nginx(当然也可以找到nginx进程号,然后使用 kill -9 杀掉nginx的进程)

​ ./nginx -s reload 重新加载nginx的配置文件

核心配置文件解读

最大并发量计算

​ 正常情况下: worker_connections * worker_process

​ 反向代理下: worker_connections * worker_process / 4 (客户端与代理服务器占用俩个链接,代理服务器与目标服务 器占用俩个链接)

nginx 的conf/nginx.conf 配置文件分为三大块: 全局块event块http块

  • 全局块

    此处配置影响的nginx服务器的整体运行,比如worker进程的数量、错误日志的位置等。

  • event块

    主要影响nginx服务器与用户的网络连接,比如worker_connections = 1024,标识每一个worker_process支持的最大连接数为1024。当前服务器的请求处理的最大并发量为 worker_connections * worker_process

  • http块

    配置关于不同场景的配置

负载均衡策略

  • 轮询

    默认策略,每个请求按时间顺序逐一分配到不同的服务器,如果某一服务器下线,可以自动删除

    upstream {server_name} {
        server ip:port;
        server ip:port;
        ...
    }
    
  • weight

    weight代表权重,默认每个负载的服务器都为1,权重越高那么被分配的请求越多(用于服务器请求不均衡的场景)

    upstream {server_name} {
        server ip:port weight=1;
        server ip:port weight=2;
        ...
    }
    
  • ip_hash

    每个请求按照ip的hash结果分配,每一个客户端的请求会固定的分配到同一台目标服务器处理,可以解决session问题

    upstream {server_name} {
        ip_hash;
        server ip:port;
        server ip:port;
        ...
    }
    

nginx底层进程机制分析

​ nginx启动后,以Deamon的多进程方式在后台运行,包括一个Master进程和多个Worker进程,Master进程是leader,Worker为实际的业务线程。

  • master进程

    主要管理worker进程

    1. 接收外界信号向个worker进程发送信号(./nginx -s reload – 将worker杀掉重新加载配置文件并启动新的进程)
    2. 监控worker的进程的运行状态,当worker进程异常退出后Master进程会自动重启worker进程等
  • worker进程

    worker进程具体处理网络请求,多个worker之间是对等的,他们同等竞争来自客户端的请求,各个进程之间是独立的。一个请求只能在一个worker进程处理,一个worker进程不能处理其他进程的请求。worker的进程数可设置,一般设置与机器CPU的核数一致。

worker进程具体处理网络请求,多个worker之间是对等的,他们同等竞争来自客户端的请求,各个进程之间是独立的。一个请求只能在一个worker进程处理,一个worker进程不能处理其他进程的请求。worker的进程数可设置,一般设置与机器CPU的核数一致。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值