Nginx简介

1.应用场景

当用户比较少时,请求发送到Tomcat服务器后,服务器再响应回去,一切都很协调。当用户逐渐增多时,Tomcat服务器无法处理如此多的请求,会挂掉。这是应该怎么办?

我们横向增加了很多Tomcat服务器,让多个Tomcat服务器来处理海量请求,我们知道Session是不共享的,如何处理用户与服务器的多对多关系,才能保证请求与响应不出错?

Nginx就是夹在客户端与Tomcat服务器中间的一层,实现反向代理。

2.什么是Nginx

Nginx(engine x)是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/OP3/SMTP服务。特点是占有内存小,并发能力强,官方数据测试表明能够支持高达50000个并发连接数的响应。

3.正向代理和反向代理

正向代理:就是客户端挂了一个代理(VPN),代理客户端

反向代理:代理服务端,比如客户端请求百度,服务端通过反向代理,代理到多个服务器

4.负载均衡

服务器的大小不一样,如何来确保性能好的服务器多处理,性能差的少处理

Nginx提供的负载均衡策略:

  • 轮询:就是挨着来,不分性能
  • 加权轮询:权重高的接受的请求多
  • iphash:对客户端请求的ip进行hash操作,然后根据hash结果将同一客户端ip的请求发送给同一台服务器处理,可以解决session不共享的问题(不推荐,服务器挂掉session也会消失,可以用Redis来存储

5.动静分离

在软件开发张,有些请求需要后台处理,有些请求不需要经过后台处理(如css、html、js、媒体文件等)。让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好拆分以后,可以根据静态资源的特性将其做缓存操作,提高资源响应速度。

Nginx可以将静态资源直接返回,不会走进自己的项目,提高速度。

你可能感兴趣的:(java,nginx,服务器,运维)