Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like协议下发行。
其特点是占有内存少,并发处理能力强,以高性能低资源消耗而闻名,国内有大量网站使用Nginx,比如:百度、京东、新浪、网易、腾讯、淘宝等。由于在日常工作中,我们不可避免地要接触和使用这样一款高性能的web服务器,所以我们非常有必要学习和掌握Nginx。
目录
Nginx是什么?
Nginx 由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端请求映射到一个 location block(location 是 Nginx配置中的一个指令,用于 URL 匹配),而在这个 location 中所配置的每个指令将会启动不同的模块去完成相应的工作。
Nginx 的模块从结构上分为核心模块、基础模块和第三方模块:
1. 核心模块:HTTP 模块、 EVENT 模块和 MAIL 模块
2. 基础模块: HTTP Access 模块、HTTP FastCGI 模块、HTTP Proxy 模块和 HTTP Rewrite模块,
3. 第三方模块:HTTP Upstream Request Hash 模块、 Notice 模块和 HTTP Access Key模块。
Nginx 的高并发得益于其采用了 epoll 模型,与传统的服务器程序架构不同,epoll 是linux 内核 2.6 以后才出现的。 Nginx 采用 epoll 模型,异步非阻塞,而 Apache 采用的是select 模型。
Select 特点:select 选择句柄的时候,是遍历所有句柄,也就是说句柄有事件响应时,select 需要遍历所有句柄才能获取到哪些句柄有事件通知,因此效率是非常低。epoll 的特点:epoll 对于句柄事件的选择不是遍历的,是事件响应的,就是句柄上事件来就马上选择出来,不需要遍历整个句柄链表,因此效率非常高。Nginx具有以下几个优点:
1. 高并发,高性能
2. 可扩展性好
3. 高可靠,一年之中停机时间可能只有几秒
4. 热部署,可以不重启升级
5. 灵活性高,采用BSD许可证
目前Nginx有三个主要的产品:
官方Nginx。包含开源版(nginx.org)和商业版(nginx.com)
阿里巴巴的Tengine。Tengine是由淘宝网发起的Web服务器项目,目前已经开源
OpenResty。OpenResty通过Lua对Nginx进行扩展,使得扩展Nginx模块变得异常轻松
针对我们日常学习来说,选择官方开源版的Nginx以及OpenResty就可以了。
快速掌握Nginx
动力节点的Nginx视频教程,全面讲授了Nginx的配置与使用、企业应用实践(静态代理、负债均衡、动静分离、虚拟主机等),学习本课程,可以快速地掌握Nginx这样一款高性能的web反向代理服务器。
Nginx应用实战视频教程https://www.bilibili.com/video/BV11V411C7r9
Nginx应用实战教程配套资料下载?toutiao
学习目录
•001.Nginx:Nginx介绍
•002.Nginx:反向代理
•003.Nginx:正向代理
•004.Nginx:安装-安装前的准备
•005.Nginx:安装
•006.Nginx:命令-启动Nginx
•007.Nginx:命令-关闭Nginx
•008.Nginx:命令-其他命令
•009.Nginx:配置文件解读-基础配置
•010.Nginx:配置文件解读-工作模式和链接数
•011.Nginx:配置文件解读-HTTP服务器
•012.Nginx:部署静态Web服务器
•013.Nginx:负载均衡-硬件和软件负载
•014.Nginx:负载均衡部署myweb项目
•015.Nginx:负载均衡策略介绍
•016.Nginx:负载均衡策略实现
•017.Nginx:负载均衡-其他配置
•018.Nginx:静态代理
•019.Nginx:动静分离-部署p2p项目
•020.Nginx:动静分离-p2p项目负载均衡
•021.Nginx:动静分离-p2p项目实现动静分离
•022.Nginx:虚拟主机应用场景
•023.Nginx:虚拟主机部署多城市站点