Nginx是什么?可以做什么事情?
Nginx是高性能的HTTP和反向代理的web服务器,处理高并发的能力十分强大,能经受高负载的考研,有报告表明能能支持高达50000个并发连接数。
特点
- 占有内存少:一万个长连接(keep-alive),仅消耗2.5MB内存
- 并发能力强:官方数据每秒支持5万并发
- 模块化设计:良好的扩展性,可以通过模块方式进行功能扩展
- 高可靠性:主控进程和worker是同步实现,一个worker出现问题,会立刻启动另一个worker
- 支持热部署:不用停止服务器,实现更新配置文件,更换日志文件,更换服务器程序版本
- 功能丰富:优秀的反向代理功能和灵活的负载均衡策略
Nginx作为web服务器
Nginx可以作为静态页面的web服务器,同时还支持CGI协议的动态语言,比如perl、PHP等,但不支持java。java只能通过与tomcat配合完成。Nginx 专为性能优化而开发, 性能是其最重要的考量,实现上非常注重效率 ,能经受高负载的考验,有报告表明能支持高 达 50,000 个并发连接数。
正向代理
Nginx不仅可以做反向代理,实现负载均衡,还可以做正向代理。如果把局域网外的Internet想象成一个巨大的资源库,则局域网中的客户端想要访问Internet,这个时候需要用到代理服务器,这种代理服务就称为正向代理。
- 简单一点:通过代理服务器来访问服务器的过程 就叫正向代理。
- 需要在客户端配置代理服务器进行指定网站访问
反向代理
- 客户端对代理是无感知的,因为客户端不需要任何配置就可以访问。
- 我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,再返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器IP地址。
负载均衡
- 增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中单个服务器上的情况改为分发到多个服务器上,将负载分发到不同的服务器,也就是我们所说的负载均衡。
- 客户端发送多个请求到服务器,服务器处理请求,有一些可能要与数据库进行交互,服 务器处理完毕后,再将结果返回给客户端。
- nginx 的负载均衡策略可以划分为两大类:内置策略和扩展策略。内置策略包含加权轮询和 ip hash,在默认情况下这两种策略会编译进 nginx 内核,只需在 nginx 配置中指明参数即可。扩展策略有很多,如 fair、通用 hash、consistent hash 等,默认不编译进 nginx 内核。
动静分离
为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度。降低原来单个服务器的压力。