Nginx基本介绍
来源:互联网 发布:电商产品 知乎 编辑:程序博客网 时间:2024/06/11 05:31
一、什么是Nginx
Nginx是一款高性能的HTTP和反向代理服务器软件,还是一个IMAP、POP3、SMTP代理服务器。由俄罗斯程序设计师开发,可以运行在多种操作系统上。
二、为什么选择Nginx
2.1、Nginx和Apache的异同
Nginx和Apache都是HTTP服务器软件,都采用模块化的结构设计,都支持PHP、Python、Perl等语言,支持正向/反向代理、虚拟主机、URL重写、压缩传输、SSL加密等功能。
区别是,Apache的处理速度很慢,并且要占用许多的资源,而Nginx的模块都是静态编译的。同时Apache对于fcgi的支持不好,而Nginx对fcgi的支持非常好。连接方式上Nginx支持epoll,而Apache不支持。空间使用上Nginx安装包只有几百K,而Apache却很大。Nginx的模块直接编译进Nginx,属于静态编译方式。启动Nginx后,模块自动加载。而Apache则会将模块编译为一个so文件,然后在配置文件中指定是否加载。
2.2、Nginx的优势
作为web服务器:在处理静态文件、索引文件,自动索引的效率非常高。
作为代理服务器:可以实现无缓存的反向代理加速,提高网站的运行速度。
作为负载均衡器:可以在内部直接支持redis和php,也可以支持HTTP代理服务器对外进行服务,同时支
持简单的容错和利用算法进行负载均衡。
性能方面:采用内核poll模型,支持更多的并发连接,最大可以响应50000个并发连接,且只占用极少的内存。
稳定性方面:采用分阶段资源分配技术,使CPU与内存占用率非常低。
高可用性方面:Nginx支持热部署,启动速度十分迅速,因此可以在不中断服务的前提下对软件版本或者配置进行升级,可以长时间不需要重新启动。
2.3、Nginx的模块与工作原理
Nginx由内核与模块组成。
内核:仅完成通过查找配置文件将客户端请求映射到一个location block,而这个location中配置的每个命令将会启动不同的模块去完成相应工作。
模块:从结构上分为核心模块、基础模块、第三方模块。
核心模块:HTTP模块、EVENT模块、MAIL模块
基本模块:HTTP Access模块、HTTP FastCGI模块、HTTP Proxy模块、HTTP Rewrite模块
第三方模块:HTTP Upstream Request Hash模块、Notice模块、HTTP Access Key模块
Nginx的模块从功能上分为如下三代类:
Handlers(处理器模块):直接处理请求,并进行输出内容和修改headers信息等操作。一般只有一个。
Filter(过滤器模块):对其他模块的输出信息进行修改操作,最后由Nginx输出。
Proxies(代理类模块):与后端例如FastCGI进行交互,实现服务代理和负载均衡。
Nginx常规的HTTP相应过程:
HTTP发出请求 –> Nginx内核 –> 选择一个Handlers处理器模块生成内容 –> 经过一个或多个Filter过滤模块 –> Nginx输出响应
Nginx的每个模块都有可能去处理某个请求,但是每个请求只能由一个模块处理。
Nginx工作方式
工作方式可以分为单工作进程和多工作进程,默认为单工作进程。
单工作进程:除主进程外,还有一个工作的单线程。
多工作进程:每个工作进程包含多个线程。
- Nginx基本介绍
- nginx 基本介绍liunx 下载 安装 启动
- 一起了解nginx-基本介绍+单点安装+基本应用
- ubunut 安装nginx基本目录结构介绍和配置使用方法
- nginx基本
- nginx基本配置与参数说明以及Nginx中的upstream轮询机制介绍
- nginx基本配置与参数说明以及Nginx中的upstream轮询机制介绍
- Nginx介绍
- Nginx 介绍
- nginx 介绍
- Nginx介绍
- Nginx介绍
- Nginx 介绍
- Nginx介绍
- Nginx介绍
- nginx介绍
- Nginx介绍
- Nginx介绍
- 2.1 SQLite数据库的创建和升级
- 软件工程概述
- python爬虫系列(七):XPath的使用
- 欢迎使用CSDN-markdown编辑器
- 51nod 连环进阶题 1118-1119-1120
- Nginx基本介绍
- ionic2集成crosswalk使用WebRTC视频通话
- AndroidStudio NDK开发 c环境调用java代码
- 2.2 SQLite数据库的增删改查和事务
- LeetCode:07: Reverse Integer
- bzoj2275 [Coci2010]HRPA
- Python 语音识别
- 3.1 使用 HTTP 访问网络的两种方式详解
- POJ 3061(尺取)