关于 nginx

 

常用的 web 服务器简介

Web 服务器也称为 WWW (WORLD WIDE WEB)服务器、HTTP 服务器,主要功能是提供网上信息浏览服务。

Unix 和Linux 平台下的常用 Web服务器有 ApacheNginx Lightpd Tomcat等其中应用最广泛的是 Apache。

nginx特性:

1.反向代理:

真实的服务器不能被外部网络直接访问 ,所以需要一台代理服务器,它不仅可以被外部网络直接访问也同时跟真实服务器在同一个网络坏境,也可以是同一台服务器的不同端口。

 2.负载均衡:

nginx常用的一个功能,就是分摊到多个操作单元上执行,例如:web服务器,FTP服务器等从而共同完成任务。

简单来说:就是当有两台或者两台以上的服务器,根据规则或者随机分发到指定的服务器上处理,负载均衡配置一般都需要同时配置反向代理,通过反向代理跳转到负载均衡 ,目前nginx支持自带三种负载均衡策略,还有两种常用的第三方策略

负载均衡通过upstream指令来实现

 3.动静分离:

动静分离是让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源 分开,动静资源做好了拆分后 就可以根据静态资源的特点将其做缓存操作 ,这就是网页静态化处理的核心思路

 

目录

 nginx原理:

五个特性:

Nginx的主要应用场景?


 nginx原理:

1.在nginx 启动后,会有一个master进程和多个worker进程master进程主要用来管理worker进程,包括:接受信号,将信号分发给worker进程,监听worker进程工作状态,当worker进程退出时(非正常),启动新的worker进程

基本的网络事件会交给worker进程处理。多个worker进程之间是对等的,他们同等竞争来自客户端的请求,各进程互相之间是独立。一个请求,只可能在一个worker进程中处理,一个worker进程,不可能处理其它进程的请求。 worker进程的个数是可以设置的,一般我们会设置与机器cpu核数一致,原因与nginx的进程模型以及事件处理模型是分不开的 。

2.master接收到重新加载的信号会怎么处理(./nginx -s reload)?

master会重新加载配置文件,然后启动新的进程,使用的新的worker进程来接受请求,并告诉老的worker进程他们可以退休了,老的worker进程将不会接受新的,老的worker进程处理完手中正在处理的请求就会退出。

3.worker进程是如何处理用户的请求呢?

由于worker进程之间是平等的,每个进程,处理请求的机会也是一样的。

当我们提供80端口的http服务时,一个连接请求过来,每个进程都有可能处理这个连接,那怎么做到的呢? 

首先master会根据配置文件生成一个监听相应端口的socket,然后再faster出多个worker进程,这样每个worker就可以接受从socket过来的消息(其实这个时候应该是每一个worker都有一个socket,只是这些socket监听的地址是一样的)。当一个连接过来的时候,每一个worker都能接收到通知,但是只有一个worker能和这个连接建立关系,其他的worker都会连接失败,这就是所谓的惊群现在,为了解决这个问题,nginx提供一个共享锁accept_mutex,有了这个共享锁后,就会只有一个worker去接收这个连接当一个worker进程accept这个连接之后,就开始读取请求,解析请求,处理请求,产生数据后,再返回给客户端,最后才断开连接。

五个特性:

1、热部署

       在master管理进程与worker工作进程的分离设计,使的Nginx具有热部署的功能,那么在7×24小时不间断服务的前提下,升级Nginx的可执行文件。也可以在不停止服务的情况下修改配置文件,更换日志文件等功能。

2、可以高并发连接

      这是一个很重要的一个特性!在这一个互联网快速发展,互联网用户数量不断增加,一些大公司、网站都需要面对高并发请求, 理论上,Nginx支持的并发连接上限取决于内存。

3、低的内存消耗

       在一般的情况下,10000个非活跃的HTTP Keep-Alive 连接在Nginx中仅消耗2.5M的内存,这也是Nginx支持高并发连接的基础。

4、处理响应请求很快

       在正常的情况下,单次请求会得到更快的响应。在高峰期,Nginx可以比其他的Web服务器更快的响应请求。

5、具有很高的可靠性

    Nginx是一个高可靠性的Web服务器,选择Nginx的基本条件,现在很多的网站都在使用Nginx,高可靠性来自其核心框架代码的优秀设计

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
05-27
好的,以下是一些关于Nginx的常见面试问题及其答案: 1. 什么是NginxNginx是一款高性能的Web服务器和反向代理服务器,也可以作为负载均衡器、HTTP缓存和安全控制等功能。 2. Nginx与Apache相比有什么优势? 相比Apache,Nginx的优势有以下几点: - 轻量级,占用资源更少; - 高并发处理能力更强; - 更好的静态文件处理能力; - 支持热部署; - 支持反向代理、负载均衡等高级功能。 3. 什么是反向代理? 反向代理是一种服务器端的代理技术,它代理的是服务器接收请求的过程。当客户端发起请求时,它会被发送到反向代理服务器,然后由反向代理服务器将请求转发给真正的服务器。这样可以隐藏真实服务器的IP地址,提高服务器的安全性,同时还可以实现负载均衡等功能。 4. Nginx如何实现反向代理? 在Nginx中,可以使用代理模块实现反向代理功能。通过配置代理服务器的地址和端口,将请求转发给真正的服务器。 例如,以下是一个简单的Nginx反向代理配置示例: ``` server { listen 80; server_name example.com; location / { proxy_pass http://backend_server; } } ``` 其中,`backend_server`是真正的服务器地址,Nginx会将所有请求转发给该地址。 5. Nginx如何实现负载均衡Nginx可以通过配置upstream模块来实现负载均衡。通过在upstream中配置多个服务器地址和权重,Nginx会自动将请求转发给这些服务器,并根据权重分配流量。 例如,以下是一个简单的Nginx负载均衡配置示例: ``` upstream backend { server 192.168.1.1 weight=3; server 192.168.1.2; server 192.168.1.3; } server { listen 80; server_name example.com; location / { proxy_pass http://backend; } } ``` 其中,`backend`是upstream的名称,Nginx会根据权重将请求分配给多个服务器。 希望这些答案能够帮助你更好地了解Nginx。如果你还有其他问题或者需要更详细的解答,请随时提出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王盐盐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值