Nginx是什么?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Nginx是什么?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5255字,纯文字阅读大概需要8分钟。
内容图文
一.参考文章
一.Nginx的产生
web服务器有很多,比如Apache。 Apache的发展时期很长,现在网上也有很多关于Apache的文章。比较好入门,但是Apache不支持高并发的服务器。 在 Apache 上运行数以万计的并发访问,会导致服务器消耗大量内存。
由于
Nginx 使用基于事件驱动架构,使得其可以支持数以百万级别的 TCP 连接。
高度的模块化和自由软件许可证使得第三方模块层出不穷(这是个开源的时代啊)。
Nginx 是一个跨平台服务器,可以运行在 Linux、Windows、FreeBSD、Solaris、AIX、Mac OS 等操作系统上。
这些优秀的设计带来的极大的稳定性。
所以,Nginx 火了!
二.为什么使用Nginx?
举个栗子:
上传图片这个功能,在并发量小的情况下,用户其实是直接访问tomcat服务器,然后服务器再将消息返回给用户。为了解决并发这个问题,我们可以使用负载均衡。也就是新增几个tomcat服务器,当我们要访问这个图片的时候,tomcat1正好在工作,所以访问的请求就交给其他的tomcat操作,而tomcat之间的数据没有进行同步,所以就发生了我们要请求的图片找不到。为了解决上面这种情况我们可以使用分布式,搭建一个图片服务器。不管连接的是那个服务器我们都将图片上传到图片服务器上。
2.1 为什么使用Nginx而不是继续使用tomcat?
原因:nginx常用做静态内容服务和代理服务器(不是你翻墙那个代理),直面外来请求转发给后面的应用服务(tomcat, django什么的),tomcat更多用来做做一个应用容器,让java web app跑在里面的东西,对应同级别的有jboss,jetty 等东西。
三.Nginx是什么?
Nginx 是一款自由的、开源的、高性能的 HTTP 服务器和反向代理服务器;同时也是一个 IMAP、POP3、SMTP 代理服务器。
Nginx 可以作为一个 HTTP 服务器进行网站的发布处理,另外 Nginx 可以作为反向代理进行负载均衡的实现。
3.1 代理的概念
- 所谓的代理其实就是一个代表,一个渠道;此时涉及到俩个角色。一个是被代理对象,一个是目标对象。
- 被代理角色通过这个代理访问目标角色完成一些任务的过程称为代理操作过程。
- eg: 客人到 adidas 专卖店买了一双鞋,这个专卖店就是代理,被代理角色就是 adidas 厂家,目标角色就是用户
3.2 正向代理
内容:
- 正向代理最大的特点是客户端非常明确要访问的服务器地址;
- 服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户端;
- 正向代理模式屏蔽或者隐藏了真实客户端信息。
举个栗子:
正向代理其实在我们生活中非常常见,比如我们现在在百度上直接访问某个网址。还有一种就是我们现在需要去 访问国外的某个网站,但是有时候访问国外的某网站无法访问。此时大家可能都会用一个操作 FQ 进行访问,FQ的方式主要是找到一个可以访问国外网站的代理服务器,我们将请求发送给代理服务器,代理服务器去访问国外的网站,然后将访问到的数据传递给我们
正向代理的图例:
总结:
正向代理,"它代理的是客户端",是一个位于客户端和原始服务器(Origin Server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器)。然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。
用途:
-
访问原来无法访问的资源,如 Google。
-
可以做缓存,加速访问资源。
-
对客户端访问授权,上网进行认证。
-
代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息。
3.2 反向代理
内容:
- 多个客户端给服务器发送的请求,Nginx 服务器接收到之后,按照一定的规则分发给了后端的业务处理服务器进行处理 了。
- 此时请求的来源也就是客户端是明确的,但是请求具体由哪台服务器处理的并不明确了,Nginx 扮演的就是一个反向代理 角 色。
- 客户端是无感知代理的存在的,反向代理对外都是透明的,访问者并不知道自己访问的是一个代理。因为客户端不需要 任何配置就可以访问。
- 反向代理,"它代理的是服务端",主要用于服务器集群分布式部署的情况下,反向代理隐藏了服务器的信息。
举个栗子:
就目前我们用的比较多的某宝来说,每天访问人数很多,单个服务器已经不能满足,这个时候就运用到了分布式部署,通过部署多台服务器解决人数限制问题,淘宝上很多功能都是通过Nginx来反向代理的,并且通过封装 Nginx 和其他的组件之后起了个高大上的名字:Tengine。
反向代理的图例:
作用:
-
保证内网的安全,通常将反向代理作为公网访问地址,Web 服务器是内网。
-
负载均衡,通过反向代理服务器来优化网站的负载。
项目场景
通常情况下,我们在实际项目操作时,正向代理和反向代理很有可能会存在同一个应用场景中,正向代理代理客户端的请求去访问目标服务器,目标服务器是一个反向单利服务器,反向代理了多台真实的业务处理服务器。
正向代理和反向代理的区别
负载均衡
我们已经明确了所谓代理服务器的概念,那么接下来,Nginx 扮演了反向代理服务器的角色,它是依据什么样的规则进行请求分发的呢?不用的项目应用场景,分发的规则是否可以控制呢?
这里提到的客户端发送的、Nginx 反向代理服务器接收到的请求数量,就是我们说的负载量。请求数量按照一定的规则进行分发,到不同的服务器处理的规则,就是一种均衡规则。
所以将服务器接收到的请求按照规则分发的过程,称为负载均衡。
负载均衡在实际项目操作过程中,有硬件负载均衡和软件负载均衡两种,硬件负载均衡也称为硬负载,如 F5 负载均衡,相对造价昂贵成本较高。但是数据的稳定性安全性等等有非常好的保障,如中国移动中国联通这样的公司才会选择硬负载进行操作。
更多的公司考虑到成本原因,会选择使用软件负载均衡,软件负载均衡是利用现有的技术结合主机硬件实现的一种消息队列分发机制。
三.Nginx的应用场景
- 1、 http服务器。Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。
- 2、 虚拟主机。可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。基于端口的,不同的端口
- 基于域名的,不同域名
- 3、 反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。
四.web服务器对比
soup_tang 发布了44 篇原创文章 · 获赞 41 · 访问量 2万+ 私信 关注内容总结
以上是互联网集市为您收集整理的Nginx是什么?全部内容,希望文章能够帮你解决Nginx是什么?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。