点赞
评论
收藏
分享
举报
别再问我Nginx是什么,拿去不谢
发表于2020-11-06 11:16

浏览 693

1.为什么要用nginx?它是怎么来的?

首先我们知道,在网站输入网址的时候访问某一个网站,可以得到想要的结果,如果是淘宝呢,淘宝购物每天用户量非常大,达到百万或者千万级怎么办了,这个时候人太多了,访问的时候操作系统的多线程和进程建的切换消耗了大量的CPU资源,严重会导致服务器宕机,失去用户量,企业面临破产。所以就有一个能解决并发访问服务器的东西,所以这个东西就横空出世了,它就是nginx高性能服务器。是由俄罗斯的工程师Igor Sysoev,他在为Rambler Media工作期间,使用C语言开发了Nginx。Nginx作为WEB服务器一直为Rambler Media提供出色而又稳定的服务。

2.什么叫nginx高性能服务器?有什么特点?

nginx高性能服务器:是一种自由的,开源的,高性能的HTTP服务器;同时也是一个IMAP,POP3,SMTP代理服务器;用来实现负载均衡的。

特点:

高可用,高并发,热部署,高扩展,低消耗。

3.nginx的下载安装和各种命令输入?

在百度里输入nginx,找到官网并进行下载(如果不会安装,网上有很多详细的教程,这里就不多说)。

下载安装(本机的安装在”/usr/local/var/log/nginx)

然后进入这个nginx 目录中执行命令:

nginx -v/h都可以查看版本号

nginx -t查看其它内容:如下图

nginx: [alert] could not open error log file: open() "/usr/local/var/log/nginx/error.log" failed (13: Permission denied)

nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok

2020/02/03 21:22:01 [emerg] 33718#0: open() "/usr/local/var/log/nginx/access.log" failed (13: Permission denied)

nginx: configuration file /usr/local/etc/nginx/nginx.conf test failed

nginx -?可以查看很多命令

4.nginx干什么用的?

作为代理进行实现负载均衡。

何为代理:代理就是一个代表,一个渠道,也就是中间站。

代理可以分为正向代理和反向代理。明白这个概念。

正向代理:在如今的技术网络时代,由于技术收到限制,我们需要查询或者学习国外的技术或课程,我们通过浏览器时没有办法进去的,访问不到,此时我们要进去的话,采用一个其它方式进去,那就是

FQ,FQ主要是找到一个可以访问的国外网站的代理服务器,我们讲请求发送给代理服务器,代理服务器取访问国外的网站,然后讲访问到的数据传送给我们。(如果没法理解的话,举个简单的日常例子,比如说,我们要买一些东西,在国内买不到,需要在国外去买,可是去国外没有认识的人,根本行不通,可以交给在国内的代理人,专门代理采购国外的商品的人,然后代理人在国外采购的商品直接用物流发送到你的手上。这就是正向代理)

正向代理最大的特点是客户端非常明确要访问的服务器;服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户端;正向代理模式屏蔽或者隐藏了真实客户端信息。来看个示意图(我把客户端和正向代理框在一块,同属于一个环境,

本地电脑都是客户端必须设置正向代理服务器,前提条件是知道正向代理服务器的IP地址。

正向代理服务器就是客户端,是一个位于客户端和原始服务器之间的服务器。

正向代理的作用:

1.用于访问国外网站,国内找不到的资源。

2.可以做缓存,加速访问资源

3.对客户端访问授权,上网进行认证

4.代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息

反向代理:毫无疑问就是和正向代理相反的作用,这是宏观上的表现理解而己。举个例子让大家明白一下:某宝网站,每天同时连接到网站的访问人数已经爆表,单个服务器远远不能满足人民日益增长的购买欲望了,此时就出现了一个大家耳熟能详的名词:分布式部署;

也就是通过部署多台服务器来解决访问人数限制的问题;某宝网站中大部分功能也是直接使用Nginx进行反向代理实现的,并且通过封装Nginx和其他的组件之后起了个高大上的名字:Tengine。

有兴趣的童鞋可以访问Tengine的官网查看具体的信息:http://tengine.taobao.org/。那么反向代理具体是通过什么样的方式实现的分布式的集群操作呢,我们先看一个示意图

通过上图可以看出:多个客户端给服务器发送的请求,Nginx服务器接收到之后,按照一定的规则分发给了后端的业务处理服务器进行处理了。此时~请求的来源也就是客户端是明确的,但是请求具体由哪台服务器处理的并不明确了,Nginx扮演的就是一个反向代理角色。

反向代理对外都是透明的,访问者并不知道自己访问的是一个代理。因为客户端不需要任何配置就可以访问。

反向代理,"它代理的是服务端",主要用于服务器集群分布式部署的情况下,反向代理隐藏了服务器的信息。

反向代理的作用:

1.保证内网的安全,通常将反向代理作为公网访问地址,Web服务器是内网

2.负载均衡,通过反向代理服务器来优化网站的负载

5.实际项目中的使用场景业务介绍

正向代理和反向代理很有可能会存在在一个应用场景中,正向代理代理客户端的请求去访问目标服务器,目标服务器是一个反向单利服务器,反向代理了多台真实的业务处理服务器。

上图中的图片来源于网络,便于大家理解,一目了然。

正向代理和反向代理的区别:

1.正向代理是客户端,信息被隐藏了。

2.反向代理是服务端,信息也被隐藏了。

下图中表示:

实际上,Proxy在两种代理中做的事情都是替服务器代为收发请求和响应,不过从结构上看正好左右互换了一下,所以把后出现的那种代理方式称为反向代理了

负载均衡:客户端发送的、Nginx反向代理服务器接收到的请求数量,就是我们说的负载量。请求数量按照一定的规则进行分发到不同的服务器处理的规则,就是一种均衡规则。

所以~将服务器接收到的请求按照规则分发的过程,称为负载均衡。

6.性能调优

零拷贝基础:一个存储到其它存储的任务是没有CPU参与的网络文件传输,提高工作工作效率。

传统拷贝方式:4次空间转换,4次复制,两次有CPU参与。

太浪费空间了和CPU

零拷贝方式:

2次空间转换,2次复制,0次复制是由CPU参与的

多路复用器selectpollepoll

select多路复用器底层是数组实现的

poll多路器底层是链表实现的

epoll多路复用器是链表实现

在这里什么是多路复用器?干什么用的?

多路复用器就是把所有的传输信号集合在一起传输,互不干扰,利用率高。

负载均衡的实现

1.硬件负载均衡比较贵,十几万到百万。

2.软件负载均衡成本为0,比较好的一种实现方法。

以上就是Nginx的学习方式了,希望帮助到大家!!!

已修改于2023-02-20 15:27
创作不易,留下一份鼓励
15010328283z

暂无个人介绍

关注



写下您的评论
发表评论
全部评论(0)

按点赞数排序

按时间排序

关于作者
15010328283z
这家伙很懒还未留下介绍~
1
文章
0
问答
0
粉丝
相关文章