0. 前言
Nginx搭配Tomcat作Web服务器是项目部署在服务器上最常见的方式,为什么要使用Nginx呢?理由有不少,下面来分条讲讲:
1. Nginx简介
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。
2. 为什么要使用Nginx?
- 提供静态内容服务,处理静态文件是比一般的Web服务器(如Apache、Tomcat)更稳妥并更快速的;
- 处理高性能和高效率的并发,占用资源更少;
- 可定制负载均衡策略,提高服务器的负荷能力。
- 使处理HTTP请求与相应与实际的业务分离。
3. Nginx的特性
Nginx的特性主要讲下下面的三个:
- 反向代理
- 负载均衡
- IO处理
另外,还可以参考:Nginx的一些基本功能 - CSDN博客
3.1 反向代理
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
反向代理是负载均衡的实现方式之一。
一个反向代理的服务器抛开所有业务层的东西,只单纯的接下请求再返回,即分离IO和业务,能够极大限度的使用服务器的性能。
3.2 负载均衡
负载均衡(Load Balance),其意思就是分摊到多个操作单元上进行执行。建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
具体体现:
- 在Nginx设置文件中的upstream模块设置好各节点的权重以分发请求。
- 反向代理
3.3 IO处理
对于后端是动态服务来说,比如Java和PHP。这类服务器(如JBoss和PHP-FPM)的IO处理能力往往不高。Nginx有个好处是它会把Request在读取完整之前buffer住,这样交给后端的就是一个完整的HTTP请求,从而提高后端的效率,而不是断断续续的传递(互联网上连接速度一般比较慢)。同样,Nginx也可以把response给buffer住,同样也是减轻后端的压力。
4. Nginx的下载、配置、使用
具体的下载、配置、使用可以参考以下网站:
Copyright © 2018, CSCW back-end Kanarien, All Rights Reserved