一.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. JS复制粘贴解决方案

    var clipboardData = window.clipboardData; //for IE if (!clipboardData) { // for chrome window.prompt ...

  2. oracle中如何判断某个日期是星期几

    SELECT to_char(to_date('2011-03-13','YYYY-MM-DD'),'d') FROM DUAL 其中 红色部分为传入日期 to_char的其他用法 Select to ...

  3. php cmd 不能利用$_COOKIE 的处理 通过文件来暂存字符串

    路径 <?php define('CMDPATH', 'wD:\cmd\\'); echo CMDPATH; die(); broswer 路径无问题 w 读 用 <?php $wfile ...

  4. 0x01 MySQL What's DataBase

    0x01 数据库管理软件的由来 在此之前,数据要想永久保存,都是保存于文件中,毫无疑问,一个文件仅仅能存在于某一台机器上. 如果暂且忽略直接基于文件来存取数据的效率问题,并且假设程序所有的组件都运行在 ...

  5. C++学习之旅get、getline的使用方法

    C++学习之旅get.getline的使用方法 面向行的输入:cin.getline(). 该函数读取整行.它使用通过回车键输入的换行符来确定输入结尾.要调用这样的方法,能够使用cin.getline ...

  6. Spring Boot在aop中获取request对象

    doBefore(){ ServetRequestAttrbtes attributes = (ServetRequestAttrbtes)RequestContextHolder.getHttpat ...

  7. 字符串之strchr

    功能:查找字符在字符串中第一次出现的位置. #include <iostream> #include <assert.h> using namespace std; char ...

  8. Python之面向对象进阶------反射(Day26)

    一 classmethod class Classmethod_Demo(): role = 'dog' @classmethod def func(cls): print(cls.role) Cla ...

  9. 前端基础之JavaScript_(2)_BOM对象

    BOM对象 window对象 所有浏览器都支持 window 对象.概念上讲.一个html文档对应一个window对象.功能上讲: 控制浏览器窗口的.使用上讲: window对象不需要创建对象,直接使 ...

  10. google黑客语法总结

    搜索也是一门艺术 说起Google,可谓无人不知无人不晓,其强大的搜索功能,可以让你在瞬间找到你想要的一切.不过对于普通的用户而言,Google是一个强大的搜索引擎:而对于黑客而言,则可能是一款绝佳的 ...