Nginx的原理

来源:互联网 发布:个人电台录音软件 编辑:程序博客网 时间:2024/06/10 01:24

1.      首先看一下Nginx的目录结构

├── auto           自动检测系统环境以及编译相关的脚本

│   ├──cc          关于编译器相关的编译选项的检测脚本

│   ├──lib         nginx编译所需要的一些库的检测脚本

│   ├──os          与平台相关的一些系统参数与系统调用相关的检测

│   └──types       与数据类型相关的一些辅助脚本

├── conf           存放默认配置文件,在make install后,会拷贝到安装目录中去

├── contrib        存放一些实用工具,如geo配置生成工具(geo2nginx.pl)

├── html           存放默认的网页文件,在make install后,会拷贝到安装目录中去

├── man            nginx的man手册

└── src            存放nginx的源代码

    ├──core        nginx的核心源代码,包括常用数据结构的定义,以及nginx初始化运行的核心代码如main函数

    ├──event       对系统事件处理机制的封装,以及定时器的实现相关代码

    │   └── modules 不同事件处理方式的模块化,如select、poll、epoll、kqueue等

    ├──http        nginx作为http服务器相关的代码

    │   └── modules 包含http的各种功能模块

    ├──mail        nginx作为邮件代理服务器相关的代码

    ├──misc        一些辅助代码,测试c++头的兼容性,以及对google_perftools的支持

    └──os          主要是对各种不同体系统结构所提供的系统函数的封装,对外提供统一的系统调用接口

Nginx是采用了反向代理的模式,应用于网络传输协议中的最高层:应用层,【越低的越难在第四层可以使用lvs进行集群】,提高我们的高并发使用量,但是Nginx还一个更重要的作用就是负载均衡。

Nginx的反向代理: 反向代理(ReverseProxy)方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器;并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。



负载均衡:当流量很大时,就需要使用多台服务器来共同提供服务,这就是所谓的集群。