前言:
简介:
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。
其特点是占有内存少,并发能力强,最高可高达50000个并发连接。高效率
、高并发
、高可用
。
主要的功能有:
- 虚拟主机
- 反向代理
- 负载均衡
- 动静分离
虚拟主机
虚拟主机是一种特殊的软硬件技术,它可以将网络上的每一台计算机分成多个虚拟主机,每个虚拟主机可以独立对外提供web服务,这样就可以实现一台主机对外提供多个web服务,每个虚拟主机之间是独立的网站、独立的域名,从网站访问者来看,每一台虚拟主机和一台独立的主机完全一样,互不影响。
上图是以端口模式划分的虚拟主机
虚拟主机的划分除了上图展示的端口模式,还有以域名划分、以IP划分。
- 以端口划分虚拟主机(应用:公司内部网站,web网站管理后台)
- 以域名划分 (应用:外部网站)
- 以IP划分 (一块主机绑定多个IP,用到的比较少)
反向代理
没有代理的访问
正向代理
反向代理
反向代理,客户端是对中间的代理服务器(Nginx)是无感的,应为客户端不需要在进行代理配置,只需要把请求发给代理服务器(Nginx),通过它进行自动选择访问的目标服务器,这个过程就叫作反向代理。Nginx就是性能非常好的反向代理服务器,当有多台服务器需要代理,还可以用来做负载均衡。
负载均衡
当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。
负载均衡部署的前提是部署过多台反向代理服务器,或者多台虚拟主机服务器,客户端对服务器的访问通过Nginx的负载均衡策略,选择相对来说最优的代理服务器或虚拟主机进行访问。
负载均衡的策略:
轮询:
这一项为默认的,当没有配置负载均衡时,默认为轮询状态,例如,第一个请求web1加载,第二个请求web2加载,第三个请求web3加载,第四个请求web1加载… 以此类推。ip_hash
:每个请求按访问IP的hash结果分配,同一个IP客户端固定访问一个后端服务器。可以保证来自同一ip的请求被打到固定的机器上,可以解决session问题。url_hash
:按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器。后台服务器为缓存的时候效率。fair
:这是比上面两个更加智能的负载均衡算法。此种算法可以依据页面大小和加载时间长短智能地进行负载均衡,也就是根据后端服务器的响应时间来分配请求,响应时间短的优先分配。Nginx
本身是不支持fair
的,如果需要使用这种调度算法,必须下载Nginx的upstream_fair
模块。
动静分离
为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度。降低原来单个服务器的压力。 在动静分离的tomcat的时候比较明显,因为tomcat解析静态很慢,其实这些原理的话都很好理解,简单来说,使用正则表达式匹配过滤,然后交给不同的服务器。
静态页面一般直接由Nginx来处理,动态页面则是通过反向代理,代理到后端的Tomcat,然后在做负载均衡,是选择本地静态页面,还是后端Tomcat,这由负载均衡配置决定。
动静分离是在负载均衡后做的,例如静态wbe有多台,动态web有多台,先动静分离,然后在各自集群里做负载均衡、权重等。
以是Nginx的常用功能的简介,如果需要具体参考配置案例,请跳转博客主页哦─=≡Σ(((つ•̀ω•́)つ
======================================================================================================================================================================================================================================================================================================
辛苦浏览观看,如果对你有帮助,请顺手点个赞吧 (σ゚∀゚)σ…:*☆