Nginx是什么,做什么事
Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,特点是占有内存少,并发能力强,Nginx的并发能力在同类型的网页服务器中表现较好。Nginx专为优化性能而开发,非常注重效率,能够经受住高负载的考验(有报告表明能支持50000个并发连接数)。
Nginx不仅可以做反向代理,实现负载均衡。还能用作正向代理来进行上网等功能。
Nginx做为HTTP服务器,有以下几项基本特性:
- 处理静态文件,索引文件以及自动索引;打开文件描述符缓冲.
- 无缓存的反向代理加速,简单的负载均衡和容错.
- FastCGI,简单的负载均衡和容错.
- 模块化的结构。包括gzipping, byte ranges, chunked responses,以及SSI-filter等filter。如果由FastCGI或其它代理服务器处理单页中存在的多个SSI,则这项处理可以并行运行,而不需要相互等待。
- 支持SSL 和 TLSSNI.
正向代理
例如局域网的客户通过代理服务器来访问Internet。
正向代理:意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理。
在正向代理的过程中,用户是知道中间代理的存在的。
反向代理
反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源,客户端不需要做任何配置。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。用户对代理是无感知的。暴露出代理服务器,隐藏了真实服务器。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。
通过一个反向代理服务器,将你的请求转发到不同的服务器。
负载均衡
当服务器的访问量越来越大的时候,一台服务器可能无法承受住这么大的并发访问或性能消耗。提高单台服务器的性能是一个选项。还有一个选项就是进行分流,部署多台服务器,然后在服务器的前面部署一台负载均衡服务器,动态或静态的进行访问分流。这就是负载均衡。
动静分离
动态资源(jsp、ftl、thymeleaf、servlet)与静态资源(js、css、img、html)分开部署。
采用动静分离能够给服务器减轻很大的压力,当用户请求静态资源时有单独的服务器处理,而且采用此方法能够更好的对静态资源和动态资源进行针对性优化。
顺带备注一下
- 通过上面的功能Nginx可以用来解决跨域问题: 当访问www.baidu.com的时候 使用nginx拦截 转发到www.baidu1.com
- 当访问www.baidu.com的时候转发到真实的ip地址。
- 而且可以通过此方法实现外网访问内网其他服务器的资源。