目录
在传统的Web项目中,并发量小(tomcat默认配置的最大请求数是 150),用户使用的少。所以在低并发的情况下,用户可以直接访问tomcat服务器,然后tomcat服务器返回消息给用户;
但当出现高并发时,为了解决并发,得用负载均衡,这时就得考虑nginx:
1、作为 Web 服务器:
-
高并发
Nginx同Apache一样都是一种WEB服务器,基于REST架构风格,以URI或URL作为沟通依据,通过HTTP协议提供各种网络服务。
在Apache上运行数以万计的并发访问,会导致服务器消耗大量内存。操作系统对其进行进程或线程间的切换也消耗了大量的CPU资源,导致HTTP请求的平均响应速度降低。
相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率;
nginx的特点是占有内存少,并发能力强,能够支持高达 50,000 个并发连接数的响应,支持数以百万级别的TCP连接;
-
静态服务器
上传图片操作中,我们把图片上传到了tomcat1上了,当我们要访问这个图片的时候,tomcat1正好在工作,所以访问的请求就交给其他的tomcat操作,而tomcat之间的数据没有进行同步,所以就发生了我们要请求的图片找不到。此时nginx可以做静态资源服务器;
2、负载均衡服务器
3.、虚拟主机
可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。
4、反向代理
-
正向代理
访问国外的某些网站时,具体是找到一个可以访问国外网站的代理服务器,我们将请求发送给代理服务器,代理服务器去访问国外的网站,然后将访问到的数据传递给我们;
上述这样的代理模式称为正向代理,正向代理最大的特点是客户端非常明确要访问的服务器地址;服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户端;正向代理模式屏蔽或者隐藏了真实客户端信息;
-
反向代理
多个客户端给服务器发送的请求,Nginx服务器接收到之后,按照一定的规则分发给了后端的N*台业务处理服务器进行处理了。此时~请求的来源也就是客户端是明确的,但是请求具体由哪台服务器处理的并不明确了,Nginx扮演的就是一个反向代理角色。
正向代理,"它代理的是客户端,代客户端发出请求";
反向代理,"它代理的是服务端,代服务端接收请求";
5、邮件代理服务器
Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last.fm 描述了成功并且美妙的使用经验。
另外:
- Nginx使用基于事件驱动架构,使得其可以支持数以百万级别的TCP连接
- 高度的模块化和自由软件许可证使得第三方模块层出不穷(这是个开源的时代啊~)
- Nginx是一个跨平台服务器,可以运行在Linux,Windows,FreeBSD,Solaris,AIX,Mac OS等操作系统上
- 这些优秀的设计带来的是极大的稳定性