网站策划与建设实训心得,蛋糕店网页设计图片,wordpress 标签排序,企业app下载1.什么是Nginx#xff1f;
Nginx是一个 轻量级/高性能的反向代理Web服务器#xff0c;用于 HTTP、HTTPS、SMTP、POP3 和 IMAP 协议。他实现非常高效的反向代理、负载平衡#xff0c;他可以处理2-3万并发连接数#xff0c;官方监测能支持5万并发。
2.Nginx 有哪些优点
Nginx是一个 轻量级/高性能的反向代理Web服务器用于 HTTP、HTTPS、SMTP、POP3 和 IMAP 协议。他实现非常高效的反向代理、负载平衡他可以处理2-3万并发连接数官方监测能支持5万并发。
2.Nginx 有哪些优点 跨平台、配置简单。非阻塞、高并发连接处理 2-3 万并发连接数官方监测能支持 5 万并发。内存消耗小开启 10 个 Nginx 才占 150M 内存。成本低廉且开源。稳定性高宕机的概率非常小。内置的健康检查功能如果有一个服务器宕机会做一个健康检查再发送的请求就不会发送到宕机的服务器了。重新将请求提交到其他的节点上3.Nginx应用场景 http服务器。Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。虚拟主机。可以实现在一台服务器虚拟出多个网站例如个人网站使用的虚拟机。反向代理负载均衡。当网站的访问量达到一定程度后单台服务器不能满足用户的请求时需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载不会应为某台服务器负载高宕机而某台服务器闲置的情况。nginz 中也可以配置安全管理、比如可以使用Nginx搭建API接口网关,对每个接口服务进行拦截。4.Nginx怎么处理请求的
server { # 第一个Server区块开始表示一个独立的虚拟主机站点listen 80 # 提供服务的端口默认80server_name localhost; # 提供服务的域名主机名location / { # 第一个location区块开始root html; # 站点的根目录相当于Nginx的安装目录index index.html index.html; # 默认的首页文件多个用空格分开
} # 第一个location区块结果
首先Nginx 在启动时会解析配置文件得到需要监听的端口与 IP 地址然后在 Nginx 的 Master 进程里面先初始化好这个监控的Socket(创建 Socket设置 addr、reuse 等选项绑定到指定的 ip 地址端口再 listen 监听)。然后再 fork(一个现有进程可以调用 fork 函数创建一个新进程。由 fork 创建的新进程被称为子进程 )出多个子进程出来。之后子进程会竞争 accept 新的连接。此时客户端就可以向 nginx 发起连接了。当客户端与nginx进行三次握手与 nginx 建立好一个连接后。此时某一个子进程会 accept 成功得到这个建立好的连接的 Socket 然后创建 nginx 对连接的封装即 ngx_connection_t 结构体。接着设置读写事件处理函数并添加读写事件来与客户端进行数据的交换。最后Nginx 或客户端来主动关掉连接到此一个连接就寿终正寝了。
5.什么是正向代理
一个位于客户端和原始服务器(origin server)之间的服务器为了从原始服务器取得内容客户端向代理发送一个请求并指定目标(原始服务器)然后代理向原始服务器转交请求并将获得的内容返回给客户端。
客户端才能使用正向代理。正向代理总结就一句话代理端代理的是客户端。例如说我们使用的OpenVPN 等等。
6.什么是反向代理
反向代理Reverse Proxy方式是指以代理服务器来接受 Internet上的连接请求然后将请求发给内部网络上的服务器并将从服务器上得到的结果返回给 Internet 上请求连接的客户端此时代理服务器对外就表现为一个反向代理服务器。 反向代理总结就一句话代理端代理的是服务端。 7.反向代理服务器的优点是什么?
反向代理服务器可以隐藏源服务器的存在和特征。它充当互联网云和web服务器之间的中间层。这对于安全方面来说是很好的特别是当您使用web托管服务时。
8.Nginx负载均衡的算法怎么实现的?策略有哪些?
为了避免服务器崩溃大家会通过负载均衡的方式来分担服务器压力。将对台服务器组成一个集群当用户访问时先访问到一个转发服务器再由转发服务器将访问分发到压力更小的服务器。
Nginx负载均衡实现的策略有以下五种
1 .轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器如果后端某个服务器宕机能自动剔除故障系统。 权重 weight
weight的值越大分配到的访问概率越高主要用于后端每台服务器性能不均衡的情况下。其次是为在主从的情况下设置不同的权值达到合理有效的地利用主机资源。 3. ip_hash( IP绑定)
每个请求按访问IP的哈希结果分配使来自同一个IP的访客固定访问一台后端服务器并且可以有效解决动态网页存在的session共享问题 4. fair(第三方插件)
必须安装upstream_fair模块。
对比 weight、ip_hash更加智能的负载均衡算法fair算法可以根据页面大小和加载时间长短智能地进行负载均衡响应时间短的优先分配。 5.url_hash(第三方插件)
必须安装Nginx的hash软件包
按访问url的hash结果来分配请求使每个url定向到同一个后端服务器可以进一步提高后端缓存服务器的效率。 9.限流怎么做的
Nginx限流就是限制用户请求速度防止服务器受不了
限流有3种
正常限制访问频率正常流量突发限制访问频率突发流量限制并发连接数
Nginx的限流都是基于漏桶流算法 实现三种限流算法 1、正常限制访问频率正常流量
限制一个用户发送的请求我Nginx多久接收一个请求。
Nginx中使用ngx_http_limit_req_module模块来限制的访问频率限制的原理实质是基于漏桶算法原理来实现的。在nginx.conf配置文件中可以使用limit_req_zone命令及limit_req命令限制单个IP的请求处理频率。 1r/s代表1秒一个请求1r/m一分钟接收一个请求 如果Nginx这时还有别人的请求没有处理完Nginx就会拒绝处理该用户请求。 2、突发限制访问频率突发流量
限制一个用户发送的请求我Nginx多久接收一个。
上面的配置一定程度可以限制访问频率但是也存在着一个问题如果突发流量超出请求被拒绝处理无法处理活动时候的突发流量这时候应该如何进一步处理呢
Nginx提供burst参数结合nodelay参数可以解决流量突发的问题可以设置能处理的超过设置的请求数外能额外处理的请求数。我们可以将之前的例子添加burst参数以及nodelay参数 为什么就多了一个 burst5 nodelay; 呢多了这个可以代表Nginx对于一个用户的请求会立即处理前五个多余的就慢慢来落没有其他用户的请求我就处理你的有其他的请求的话我Nginx就漏掉不接受你的请求 3、 限制并发连接数
Nginx中的ngx_http_limit_conn_module模块提供了限制并发连接数的功能可以使用limit_conn_zone指令以及limit_conn执行进行配置。接下来我们可以通过一个简单的例子来看下 上面配置了单个IP同时并发连接数最多只能10个连接并且设置了整个虚拟服务器同时最大并发数最多只能100个链接。当然只有当请求的header被服务器处理后虚拟服务器的连接数才会计数。刚才有提到过Nginx是基于漏桶算法原理实现的实际上限流一般都是基于漏桶算法和令牌桶算法实现的。