一.Ngnix介绍
1.概念
一个强大的Web服务器软件.
2.功能
1)处理高并发的http请求.
2)作为反向代理服务器来进行负载均衡.
3)数据压缩和解压缩处理
3.优势
高性能,轻量级,内存消耗少,强大的负载均衡能力等.
二.Master/Worker进程
Ngnix启动后,在系统中以daemon的方式在后台运行,包含一个Master进程和n(n>=1)个Worker进程.
Master进程:接受来自外界的信号,给Worker进程发送信号,监控Worker进程的工作状态.
Worker进程:外部请求的真正处理者.一个Worker进程只能有一个主线程.
高并发的处理方式:异步非阻塞(即单线程,非阻塞,异步IO的工作模型),相比apache,ngnix省去了线程上下文切换所带来的资源开销.
三.如何进行http请求处理
1.Master进行fork每个Worker进程.
2.Worker进程调用accept接受连接(此步比较复杂).
3.开始读取请求,解析请求,处理请求,断开连接.
四.如何进行负载均衡
Ngnix支持的通信协议:http,https.
ngnix以反向代理的方式进行负载均衡.
反向代理方式:指以代理服务器来接受请求,然后代理服务器将请求转发给内网服务器,获取内网服务器结果后返回给请求连接的客户端,此时代理服务器对外就表现为一个服务器.
正向代理方式:指一个位于客户端和目标服务器之间的服务器,客户端向代理服务器发送一个请求并指定目标服务器,然后代理向目标服务器转交请求并获得内容返回客户端.(插播)
五.压缩解压缩处理
压缩:数据发送客户端之前,ngnix会对响应做压缩,如果后端服务器已经进行了压缩处理,则ngnix就不再进行压缩.
解压缩:解压缩指令在预编译的开源ngnix中没有,属于一个单独的模块,需要编译到ngnix中去.
六.负载均衡技术(补充)
硬件层面:F5负载均衡器
网络层面:LVS(Linux Virtual Server)
应用层面:Nignix,Haproxy等.

Ngnix学习笔记的更多相关文章

  1. Nginx学习笔记4 源码分析

    Nginx学习笔记(四) 源码分析 源码分析 在茫茫的源码中,看到了几个好像挺熟悉的名字(socket/UDP/shmem).那就来看看这个文件吧!从简单的开始~~~ src/os/unix/Ngx_ ...

  2. golang学习笔记8 beego参数配置 打包linux命令

    golang学习笔记8 beego参数配置 打包linux命令 参数配置 - beego: 简约 & 强大并存的 Go 应用框架https://beego.me/docs/mvc/contro ...

  3. nginx 学习笔记(2) nginx新手入门

    这篇手册简单介绍了nginx,并提供了一些可以操作的简单的工作.前提是nginx已经被安装到你的服务器上.如果没有安装,请阅读上篇:nginx 学习笔记(1) nginx安装.这篇手册主要内容:1. ...

  4. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  5. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  6. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

  7. 2014年暑假c#学习笔记目录

    2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...

  8. JAVA GUI编程学习笔记目录

    2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...

  9. seaJs学习笔记2 – seaJs组建库的使用

    原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...

随机推荐

  1. 用SQL语句生成唯一标识

    以前都是在代码中生成GUID值,然后保存到数据库中去,今天发现用sql也能生成GUID值,觉得很新奇,所以记下来. sellect newid();  //得到的即为GUID值 此sql内置函数返回的 ...

  2. Hystrix参数说明

    参数配置 参数说明 值 备注 groupKey productStockOpLog group标识,一个group使用一个线程池 commandKey addProductStockOpLog com ...

  3. TypeError: save() missing 1 required positional argument: 'self'

    RT,在创建模型对象的时候,提示TypeError: save() missing 1 required positional argument: 'self' 解决办法:在创建模型对象的时候需要加上 ...

  4. LATEX教程(一)

    第一个文档 打开WinEdt,建立一个新文档,将以下内容复制进入文档中,保存,保存类型选择为UTF-8. \documentclass{article} \begin{document} hello, ...

  5. 判断IP地址是否合法

    /* return 1 if string contain only digits, else return 0 */ int valid_digit(char *ip_str) { while (* ...

  6. mysql数据库补充知识6 完整性约束

    一 介绍 约束条件与数据类型的宽度一样,都是可选参数 作用:用于保证数据的完整性和一致性主要分为: PRIMARY KEY (PK) 标识该字段为该表的主键,可以唯一的标识记录 FOREIGN KEY ...

  7. render httprequest

    render def my_view(request):# View code here... t = loader.get_template('myapp/index.html') c = Requ ...

  8. Activity的生命周期整理

    Activity主要的三种状态: Running(运行):在屏幕前台(位于当前任务堆栈的顶部) Paused(暂停):失去焦点但仍然对用户可见(覆盖Activity可能是透明或未完全遮挡) Stopp ...

  9. range开始节点和结束节点

    sc = range.startContainer, so = range.startOffsest ec = range.endContainer, eo=range.endOffset   sta ...

  10. 41和为S的连续正数序列

    题目描述 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100.但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数).没多久,他 ...