18 个最热门的 Nginx 面试问题及答案(2025 年)

以下是 Nginx 面试问题和答案,可帮助新手和经验丰富的开发人员候选人获得他们梦想的工作。


1)解释什么是Nginx?

Nginx 是一个 Web 服务器和 HTTP、HTTPS、SMTP、POP3 和 IMAP 协议的反向代理服务器。

免费 PDF 下载:Nginx 面试题


2)请列举一些Nginx的特殊特性?

Nginx 服务器的特殊功能包括

  • 反向代理/ L7 负载均衡器
  • 嵌入式 Perl 解释器
  • 动态二进制升级
  • 适用于重写 URL 和出色的 PCRE 支持

3)请说出Nginx和Apache之间的区别是什么?

Nginx的 阿帕奇
  • Nginx 是一个基于事件的 Web 服务器
  • 所有请求都由单个线程处理。
  • Nginx 避免了子进程的想法。
  • Nginx 速度
  • Nginx 在内存消耗和连接数方面更胜一筹
  • 当你需要负载平衡时,Nginx 是更好的选择
  • 对于 PHP,Nginx 可能更可取,因为它内部支持 PHP
  • Nginx 不支持 IBMi 和 OpenVMS 等操作系统。
  • Nginx 仅具有核心功能
  • Nginx 的性能和可扩展性不依赖于硬件
  •  Apache 是一个基于进程的服务器
  • 单线程处理单个请求。
  • Apache 基于子进程
  • 阿帕奇类似力量
  • Apache 在内存消耗和连接方面不达标
  • 当流量达到进程限制时,Apache 将拒绝新的连接
  • Apache 使用插件支持 PHP、Python、Perl 和其他语言。当应用程序基于 Python 或 Ruby 时,它很有用
  • Apache 支持更广泛的操作系统
  • Apache 提供的功能比 Nginx 多得多
  • Apache 依赖于 CPU 和内存等硬件组件

4)解释 Nginx 如何处理 HTTP 请求?

Nginx 使用 Reactor 模式。主事件循环等待 OS 发出就绪事件信号 - 这样数据就可以从套接字读取,此时数据被读入缓冲区并进行处理。单个线程可以同时处理数万个连接。


5)在 Nginx 中如何防止处理未定义服务器名称的请求?

丢弃请求的服务器可以定义为  

Server {

listen                80;

server_name  " " ;

return              444;

}

这里的服务器名称保存为一个空字符串,将匹配没有“Host”头字段的请求,并返回一个特殊的Nginx非标准代码444来终止连接。

Nginx 面试问题
Nginx 面试问题

6)使用“反向代理服务器”有什么好处?

反向代理服务器可以隐藏原始服务器的存在和特性。它充当互联网云和 Web 服务器之间的中介。出于安全原因,它非常有用,尤其是当您使用 Web 托管服务时。


7)请提及 Nginx 服务器的最佳用途是什么?

Nginx 服务器的最佳用途是使用 SCGI、WSGI 应用程序服务器、脚本的 FastCGI 处理程序在网络上部署动态 HTTP 内容。它还可以用作负载均衡器。


8)请提及 Nginx 服务器中的主进程和工作进程是什么?

  • 主流程: 它读取并评估配置并维护工作进程。
  • 工作进程: 它实际上负责处理请求。
Nginx 面试问题
Nginx 面试问题

9)解释如何通过 80 以外的其他端口启动 Nginx?

要通过不同的端口启动 Nginx,你必须转到 /etc/Nginx/sites-enabled/,如果这是默认文件,那么你必须打开名为“default”的文件。编辑该文件并输入你想要的端口 就像服务器 { listen 81; }


10)解释一下是否可以用 502 错误替换 Nginx 错误(如 503 错误)?

  • 502=网关错误
  • 503=服务器超载

是的,这是可能的,但你要确保 fastcgi_intercept_errors 设置为 ON,并使用错误页面指令。  

Location / {

fastcgi_pass 127.0.01:9001;

fastcgi_intercept_errors on;

error_page 502 =503/error_page.html;

#...

}

11)在 Nginx 中,解释如何在 URL 中保留双斜杠?

要在 URL 中保留双斜杠,你必须使用 合并斜线关闭; 语法:merge_slashes [开关] 默认值:merge_slashes on 上下文:http,服务器


12)解释一下 ngx_http_upstream_module 有什么用?

ngx_http_upstream_module 用于定义可以通过 fastcgi pass、proxy pass、uwsgi pass、memcached pass 和 scgi pass 指令引用的服务器组。


13)解释什么是C10K问题?

C10K 问题是指网络套接字无法同时处理大量客户端(10,000 个)。


14)请说明 stub_status 和 sub_filter 指令的用途?

  • Stub_status 指令:该指令用于了解 Nginx 的当前状态,如当前活动连接、接受的连接总数以及处理的当前读/写/等待连接数
  • Sub_filter 指令: 它用于搜索和替换响应中的内容,以及快速修复陈旧数据

15)解释 Nginx 是否支持将请求压缩到上游?

您可以使用 Nginx 模块将请求压缩到上游 gunzip。 gunzip 模块是一个过滤器,它针对不支持“gzip”编码方法的客户端或服务器,使用“内容编码:gzip”解压缩响应。


16)解释如何在 Nginx 中获取当前时间?

要获取 Nginx 中的当前时间,您必须使用 SSI 模块中的变量 $date_gmt 和 $date_local。

  • Proxy_set_header 时间 $date_gmt;

17)解释 Nginx 服务器中 -s 的用途是什么?

运行Nginx的可执行文件需要使用-s参数。


18)解释如何在 Nginx 服务器中添加模块?

在编译过程中,必须选择 Nginx 模块,因为 Nginx 不支持运行时选择模块。

这些面试问题也会对你的口试有帮助

分享

4条评论

  1. 头像 维努·戈帕尔·乔杜里 说:

    我注意到你的文章中有一个错误的说法。

    8)请提及 Nginx 服务器中的主进程和工作进程是什么?

    请更新它。
    主进程维护配置,工作进程执行进程。

    1. 有一些误解,答案含义是一样的。

    2. 头像 比布巴尔 说:

      正确,请更新。主进程维护配置和读取,并控制和维护工作进程,而工作进程负责进程。

    3. 谢谢!错误已修复

发表评论

您的电邮地址不会被公开。 必填项 *