96面试常问:盘点那些关于Nginx的常考面试题

本文深入探讨了Nginx的各个方面,包括其作为高性能反向代理服务器的角色,高并发处理能力,正向代理与反向代理的区别,以及反向代理带来的安全性优势。此外,还讨论了Nginx的优缺点、应用场景,如静态资源处理、跨域解决方案和负载均衡策略。文章还涵盖了Nginx的配置和限流算法,如漏桶和令牌桶,以及动静分离和负载均衡的实现。最后,提到了Nginx在处理HTTP服务器、虚拟主机和高可用性配置中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

什么是Nginx?

Nginx是一个 轻量级/高性能的反向代理Web服务器,他实现非常高效的反向代理、负载平衡,他可以处理2-3万并发连接数,官方监测能支持5万并发,现在中国使用nginx网站用户有很多,例如:新浪、网易、 腾讯等。

为什么要用Nginx?

跨平台、配置简单、方向代理、高并发连接:处理2-3万并发连接数,官方监测能支持5万并发,内存消耗小:开启10个nginx才占150M内存 ,nginx处理静态文件好,耗费内存少,

而且Nginx内置的健康检查功能:如果有一个服务器宕机,会做一个健康检查,再发送的请求就不会发送到宕机的服务器了。重新将请求提交到其他的节点上。

使用Nginx的话还能:

  • 节省宽带:支持GZIP压缩,可以添加浏览器本地缓存

  • 稳定性高:宕机的概率非常小

  • 接收用户请求是异步的

为什么Nginx性能这么高?

因为他的事件处理机制:异步非阻塞事件处理机制:运用了epoll模型,提供了一个队列,排队解决

Nginx怎么处理请求的?

nginx接收一个请求后,首先由listen和server_name指令匹配server模块,再匹配server模块里的location,location就是实际地址

    server {                            # 第一个Server区块开始,表示一个独立的虚拟主机站点
        listen       80;                      # 提供服务的端口,默认80
        server_name  localhost;            # 提供服务的域名主机名
        location / {                        # 第一个location区块开始
            root   html;               # 站点的根目录,相当于Nginx的安装目录
            index  index.html index.htm;        # 默认的首页文件,多个用空格分开
        }                          # 第一个location区块结果
    }           

什么是正向代理和反向代理?

  • 正向代理就是一个人发送一个请求直接就到达了目标的服务器

  • 反方代理就是请求统一被Nginx接收,nginx反向代理服务器接收到之后,按照一定的规则分发给了后端的业务处理服务器进行处理了

使用“反向代理服务器的优点是什么?

反向代理服务器可以隐藏源服务器的存在和特征。它充当互联网云和web服务器之间的中间层。这对于安全方面来说是很好的,特别是当您使用web托管服务时。

Nginx的优缺点?

优点:

  • 占内存小,可实现高并发连接,处理响应快

  • 可实现http服务器、虚拟主机、方向代理、负载均衡

  • Nginx配置简单

  • 可以不暴露正式的服务器IP地址

缺点:

  • 动态处理差:nginx处理静态文件好,耗费内存少,但是处理动态页面则很鸡肋,现在一般前端用nginx作为反向代理抗住压力,

Nginx应用场景?

  • http服务器。Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。

  • 虚拟主机。可以实现在一台服务器虚拟出多个网站,例如个人网站使用的虚拟机。

  • 反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会应为某台服务器负载高宕机而某台服务器闲置的情况。

  • nginz 中也可以配置安全管理、比如可以使用Nginx搭建API接口网关,对每个接口服务进行拦截。

Nginx目录结构有哪些?

[root@localhost ~]# tree /usr/local/nginx
/usr/local/nginx
├── client_body_temp
├── conf                             # Nginx所有配置文件的目录
│   ├── fastcgi.conf                 # fastcgi相关参数的配置文件
│   ├── fastcgi.conf.default         # fastcgi.conf的原始备份文件
│   ├── fastcgi_params               # fastcgi的参数文件
│   ├── fastcgi_params.default       
│   ├── koi-utf
│   ├── koi-win
│   ├── mime.types                   # 媒体类型
│   ├── mime.types.default
│   ├── nginx.conf                   # Nginx主配置文件
│   ├── nginx.conf.default
│   ├── scgi_params                  # scgi相关参数文件
│   ├── scgi_params.default  
│   ├── uwsgi_params                 # uwsgi相关参数文件
│   ├── uwsgi_params.default
│   └── win-utf
├── fastcgi_temp                     # fastcgi临时数据目录
├── html  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值