40个 Nginx 常问面试题

发布网友 发布时间:2024-10-23 19:20

我来回答

1个回答

热心网友 时间:2024-10-24 11:39

Nginx 是一款轻量级且高并发能力的 Web 服务器与反向代理服务器,以内存占用少和启动速度快见长。它广泛应用于互联网项目中,如新浪、网易、腾讯等网站。

Nginx 的优点包括:高性能、内存占用低、高并发处理能力、模块化设计易于扩展等。

Nginx 的应用场景包括:Web 服务器、反向代理、负载均衡、静态内容缓存等。

Nginx 通过异步非阻塞的工作方式实现高并发处理:当一个请求需要等待上游服务器响应时,该进程会注册一个事件,一旦上游服务器返回,该进程会恢复处理请求。这使得 Nginx 能在有限的进程数下处理大量并发请求。

正向代理(Forward Proxy)是指客户端代理服务器与原始服务器(origin server)之间进行连接,然后将请求转发给原始服务器,并将原始服务器的响应返回给客户端。

反向代理(Reverse Proxy)则是在客户端与服务器之间,代理端代理的是服务器端,用于优化性能、增强安全性。

反向代理服务器的优点包括:隐藏服务器信息、增强安全性、优化性能、实现负载均衡等。

Nginx 的目录结构主要包括配置文件(nginx.conf)、日志文件、工作目录等。配置文件中包含 Nginx 的各种属性和模块。

Cookie 和 Session 的区别主要在于:Cookie 存储在客户端,而 Session 存储在服务器端。它们都用于存储用户信息,但 Session 提供了更好的安全性。

Nginx 不使用多线程的原因是:多线程会导致资源消耗过大,Nginx 采用单线程异步非阻塞处理请求,能更高效地利用资源。

在对比 Nginx 和 Apache 时,Nginx 被认为是轻量级的服务器,占用资源少,抗并发能力强。Apache 则是基于多进程模型,处理请求时可能消耗更多资源。

动静分离的核心是将动态资源与静态资源分开处理,以提高静态资源的访问速度,降低服务器负载。

Nginx 的动静分离可以通过配置文件实现,指定动态资源和静态资源的路径。

Nginx 负载均衡的策略包括轮询、权重、IP Hash、公平算法(第三方插件)、URL Hash(第三方插件)等。

使用 Nginx 解决前端跨域问题的方式是:通过 Nginx 转发请求,将跨域的接口重定向到正确的服务器地址。

Nginx 虚拟主机配置分为基于域名、端口、IP 的虚拟主机配置。

location 指令用于根据用户请求的 URI 进行匹配,执行不同的操作。

实现限流通常使用漏桶算法或令牌桶算法,Nginx 中的限流功能基于漏桶算法实现。

Nginx 配置高可用性通常通过负载均衡和故障切换实现,确保服务器的稳定运行。

Nginx 可以通过配置代码阻止特定 IP 的请求,例如使用空字符串作为服务器名。

在 Nginx 中*浏览器访问通常通过配置 HTTP 头部实现,例如设置访问控制(Access-Control-Allow-Origin)等。

Nginx 实现后端服务的健康检查通常通过 ngx_http_upstream_check_mole 模块,确保后端服务的稳定。

开启 Nginx 的压缩功能可以显著减少网页、CSS、JS 等静态资源的大小,提高传输效率。

ngx_http_upstream_mole 用于定义可与 Nginx 交互的服务器组。

C10K 问题是关于如何在单个服务器上高效处理 10,000 个并发连接的问题。

Nginx 支持将请求压缩到上游服务器,使用 gunzip 模块解压缩响应。

在 Nginx 中获取当前时间可通过 SSI 模块和 date_local 变量实现。

用 Nginx 服务器解释 -s 参数的目的是运行 Nginx 可执行文件。

在生产环境中设置 Nginx worker 进程的数量应根据服务器的 CPU 核心数来决定。在多核 CPU 下,可以设置与核心数相同的进程数;在单核 CPU 下,应仅设置一个进程以避免性能损失。

Nginx 状态码解释如下:499 表示服务端处理时间过长,客户端主动关闭连接;502 可能是 FastCGI 相关问题,如进程未启动、缓冲*不足、执行时间过长等。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com