理解nginx的作用: 反向代理、负载均衡和动静分离(直接让web服务运行在80端不行吗?为什么要用nginx反向代理?)
理解nginx的作用: 反向代理、负载均衡和动静分离
你说的当然可以,想搞明白你的疑问,必须先了解nginx是什么,作用是什么,什么是反向代理,作用是什么,等这些你了解了,自然明白为什么要用nginx做反向代理了。
nginx是什么?
nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
nginx服务器有什么作用?
1、反向代理
2、负载均衡
3、动静分离
什么叫反向代理?
反向代理:反向代理(ReverseProxy)是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,简单来说就是真实的服务器不能直接被外部网络访问,想要访问必须通过代理。
为什么要使用反向代理?
1、防止主服务器被恶意攻击
2、为负载均衡和动静分离提供实现支持
什么是负载均衡?负载均衡的作用是什么?
负载均衡就是将任务分摊到多个操作单元上进行执行。对于Nginx而言,就是将收到的访问请求分发给不同的Web服务器,以提高访问性能以及可靠性。负载均衡可以有效防止一个服务器宕机而导致服务停止。
当一台服务器的单位时间内的访问量越大时,服务器压力就越大,大到超过自身承受能力时,服务器就会崩溃。为了避免服务器崩溃,让用户有更好的体验,我们通过负载均衡的方式来分担服务器压力。我们可以建立很多很多服务器,组成一个服务器集群,当用户访问网站时,先访问一个中间服务器,在让这个中间服务器在服务器集群中选择一个压力较小的服务器,然后将该访问请求引入该服务器。如此一来,用户的每次访问,都会保证服务器集群中的每个服务器压力趋于平衡,分担了服务器压力,避免了服务器崩溃的情况。
什么是动静分离?动静分离的作用?
动静分离:运用nginx的反向代理功能分发请求:所有动态资源的请求交给应用服务器,而静态资源的请求(例如图片、视频、CSS、JavaScript文件等)则直接由Nginx返回到浏览器。
动静分离的作用:主要是nginx处理静态页面的效率远高于tomcat的处理能力,使用c语言开发的nginx对静态资源每秒的吞吐量是使用Java语言开发的tomcat的6倍,也远高于其它应用服务器。
Nginx能够为服务器带来哪些优势?
其实现在估计很少人会用80端口部署服务了,起码都是443端HTTPS服务了,因为HTTPS相对更安全。
但是这不影响这个问题的解答,下面我以个人的一些看法说明下。
我们都知道你只买了一台公网服务器,默认80端口是HTTP服务,443端口是HTTPS服务。
而现在很多时候,微信、网站搜索引擎,默认都是用这些端口进行正常处理,当你有多个服务要对外开放,你如果A服务已经占用了80端口,那么B服务就不可以再占用80端口。
而你采用Nginx服务直接占用80或者443端口,那么我们根据Nginx的规则配置,就可以设置如下规则:
访问url路径/api 走A服务,访问url路径/admin 走B服务。
熟悉Nginx性能的程序员,都知道Nginx的性能之高,这里就不展开说。
因为有些编程语言框架,比如Flask,本身处理web请求就性能不高,通过Nginx可以提前处理web请求,而Flask就可以更多关注业务本身的逻辑。
当你的web服务后台可以多实例部署,这时候你说的web服务直接运行80端口,那就不能支持多台实例。
而通过nginx,就可以指向两台甚至多台实例的后端服务,而且可以设置策略进行负载请求。
比如负载后端两个web服务,A机器性能配置强,那么我们就可以分配更多的请求到A机器。
B机器性能一般,那么我们就可以减少请求到这台机器。
因为有了Nginx服务器在前面进行处理请求,用户根本不知道后端是用什么语言进行处理,减少后端暴露的几率。
不过由于使用Nginx的人很多,Nginx的漏洞也是备受关注,所以要及时关注Nginx的漏洞和最新稳定版本升级。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 490382048@qq.com 举报,一经查实,本站将立刻删除。