什么是Nginx?
Nginx是一款开源的高性能反向代理服务器,官方测试nginx能够支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定,可以作为HTTP服务器返回静态资源,也可以作为负载均衡服务器将大量请求均衡地分发给代理的后端服务器。
Nginx可以做什么?
负载均衡:负载均衡也是 Nginx常用的一个功能,当一台服务器的单位时间内的访问量越大时,服务器压力就越大,大到超过自身承受能力时,服务器就会崩溃。为了避免服务器崩溃,让用户有更好的体验,我们通过负载均衡的方式来分担服务器压力。我们可以建立很多很多服务器,组成一个服务器集群,当用户访问网站时,先访问一个中间服务器,在让这个中间服务器在服务器集群中选择一个压力较小的服务器,然后将该访问请求引入该服务器。如此以来,用户的每次访问,都会保证服务器集群中的每个服务器压力趋于平衡,分担了服务器压力,避免了服务器崩溃的情况。负载均衡配置一般都需要同时配置反向代理,通过反向代理跳转到负载均衡。
-
动静分离。使用反向代理功能通过对URL的过滤,将静态资源的请求直接由Nginx返回给浏览器,动态资源的请求交给应用服务器(Tomcat)处理,可以减小应用服务器的压力。
-
反向代理。Nginx接收Internet上的HTTP请求,然后根据配置文件将请求转发给内网中的应用服务器处理,Nginx再将处理的结果再返回给浏览器,外部不能知道处理请求的具体服务器。
-
负载均衡。Nginx基于反向代理,获取到HTTP请求后可以根据配置的负载均衡策略,根据不同的负载均衡算法将请求均衡的分布在集群中,防止单服务器负载过大而崩溃。
为什么要用Nginx返回静态文件而不是Tomcat?
严格来说,Nginx叫做HTTP Server,而Tomcat是一个Application Server或者说是一个Servlet应用容器。它们的适用领域不同,Tomcat用于调用Java程序处理动态资源,Nginx则是用于处理HTTP请求。Tomcat也能返回静态资源,但是在处理的效率上要低于Nginx。
什么是正向代理和反向代理?
- 正向代理:
最常见的例子就是科学上网,它就是一个典型的正向代理。
客户端请求代理服务器,代理服务器请求目的服务器,目的服务器返回信息给代理服务器,代理服务器再将内容返回给客户端。客户端需要知道具体请求的服务器,服务器只知道发起请求的代理服务器。简单来说正向代理代理的是客户端。
用途:
- 科学上网,访问无法访问的网址
- 保护内网的数据安全
- 隐藏访问信息,做跳板
-
反向代理:
反向代理中客户端是无法感知代理的存在的,请求到达反向代理服务器后,代理服务器根据策略分发给后台服务器处理。
反向代理代理的是服务器。
用途:
- 保证内网服务器的安全
- 实现负载均衡,优化服务器的负载。