何为 Nginx (洗脑篇)

我想说一些话

我是阿健,我最爱笑。因为可以乐观的对待生活,也可以鼓励他人。

我经常看一些国外的论坛,近来时间要在国内工作了(不访问外网的情况下)。

CSDN的帖子很杂乱,有些写的非常不错,有的就是来凑字数的(不是攻击其他人)。

也许需要整理一些常识性的东西,做这一行要讲的清楚一些。

不要无厘头的怎么样怎么样,或者转载其他的人帖子(含蓄含蓄…)。

本着求学者的心态对待,想让同行或者正在学习的同学少走一些弯路。

我要对自己做的帖子的负责,如果我有什么错误请看到此贴的朋友,给予批评。

Nginx 是个什么?

要说到一个话题,首先我们得先知道它是个什么东西what’s this?)。

Nginx(发音同engine x)是异步框架的 Web服务器

有一些帖子就上来说 Nginx 负载均衡,那 Nginx 是个啥?

You tell me ?

是异步框架的 Web服务器 × 3

ok 确实是这样。

其实说起来负载均衡也确实有些根据的。

因为 Nginx 也可以用作反向代理,负载平衡器 和 HTTP缓存。

所以可以用来实现负载均衡。

Nginx 的 工作原理

汽车是怎么动起来的?

谁都知道汽车内装有发动机的,就算不知道发动机的制作原理,你也知道汽车有了燃料,产生动力。

一个沙发四个轮子的东西 就能开动起来了(这就算一个汽车能动起来的原理吧)。

好。

Nginx 的工作原理:

整体采用模块化设计是Nginx的一个重大特点,甚至http服务器核心功能也是一个模块。旧版本的Nginx的模块是静态的,添加和删除模块都要对Nginx进行重新编译,1.9.11以及更新的版本已经支持动态模块加载。

Nginx 由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端请求映射到一个 location block(location 是 Nginx配置中的一个指令,用于 URL 匹配),而在这个 location 中所配置的每个指令将会启动不同的模块去完成相应的工作。
Nginx 的模块从结构上分为:

核心模块:HTTP 模块、 EVENT 模块和 MAIL 模块
基础模块: HTTP Access 模块、HTTP FastCGI 模块、HTTP Proxy 模块和 HTTP Rewrite模块,
第三方模块:HTTP Upstream Request Hash 模块、 Notice 模块和 HTTP Access Key模块。

介绍一些 Nginx 优点。

  1. Nginx可以部署在网络上使用FastCGI脚本、SCGI处理程序、WSGI应用服务器或Phusion乘客模块的动态HTTP内容,并可作为软件负载均衡器。

  2. Nginx使用异步事件驱动的方法来处理请求。Nginx的模块化事件驱动架构可以在高负载下提供更可预测的性能。

  3. Nginx是一款面向性能设计的HTTP服务器,相较于Apache、lighttpd具有占有内存少,稳定性高等优势。

  4. Nginx不采用每客户机一线程的设计模型,而是充分使用异步逻辑从而削减了上下文调度开销,所以并发服务能力更强。

  5. Nginx在Linux操作系统下效率相当高。同时Nginx在OpenBSD或FreeBSD操作系统上采用类似于epoll的高效事件模型kqueue。

使用专业名词解释专业名词是不是有那么一点看不懂?

简而言之:

  1. 高并发响应性能非常好,官方 Nginx 处理静态文件并发 5w/s

  2. 反向代理性能非常强。(可用于负载均衡)

  3. 内存和 cpu 占用率低。(为 Apache 的 1/5-1/10)

  4. 对后端服务有健康检查功能。

  5. 配置代码简洁且容易上手。

Nginx 能做些什么?

负载均衡话题最多,说到这个就必须唠一唠反向代理。

反向代理(reverse proxy),专业名词?

我们可以这样去理解一下,我曾经在一本书上记不清书名《码农…》 作者是位非常有文学功底的大牛有句话说的非常不错。

在此用来解释反向代理合适。

大牛的原话是:正向代理就是客户端去选择服务端,反向代理就是服务端去选择客户端 。

说到这儿了,有人会问了,“还有正向代理(Forward Proxy)” 。

答案是肯定的。

并且还有透明代理代理。

相信很多的朋友都知道VPN(Virtual Private Network) 虚拟专用网 ,我们不讲不允许的东西,我们都是守法的中国公民。

VPN 就是一台海外的主机(连接至外网的主机) 我们搭建一个(很多种方法), 然后我们本地的电脑去连接我们的代理主机。 在OSI某一层的转发internet上的连接请求。这就是一个客户机选择指定主机的过程,这就是正向代理

反向代理代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

简而言之就是:
Nginx 使用反向代理,从而实现负载均衡。

小结语

关于Nginx 的配置与使用 会在下一篇博客给大家交代清楚。
关于Nginx 最权威的解释使用不是我也不是其他人,而是Nginx的官方地址。
在此奉上 https://www.nginx.com/

我是最爱笑的男人。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值