18 个最热门的 Nginx 面试问题及答案(2025 年)
以下是 Nginx 面试问题和答案,可帮助新手和经验丰富的开发人员候选人获得他们梦想的工作。
1)解释什么是Nginx?
Nginx 是一个 Web 服务器和 HTTP、HTTPS、SMTP、POP3 和 IMAP 协议的反向代理服务器。
2)请列举一些Nginx的特殊特性?
Nginx 服务器的特殊功能包括
- 反向代理/ L7 负载均衡器
- 嵌入式 Perl 解释器
- 动态二进制升级
- 适用于重写 URL 和出色的 PCRE 支持
3)请说出Nginx和Apache之间的区别是什么?
Nginx的 | 阿帕奇 |
|
|
4)解释 Nginx 如何处理 HTTP 请求?
Nginx 使用 Reactor 模式。主事件循环等待 OS 发出就绪事件信号 - 这样数据就可以从套接字读取,此时数据被读入缓冲区并进行处理。单个线程可以同时处理数万个连接。
5)在 Nginx 中如何防止处理未定义服务器名称的请求?
丢弃请求的服务器可以定义为
Server { listen 80; server_name " " ; return 444; }
这里的服务器名称保存为一个空字符串,将匹配没有“Host”头字段的请求,并返回一个特殊的Nginx非标准代码444来终止连接。
6)使用“反向代理服务器”有什么好处?
反向代理服务器可以隐藏原始服务器的存在和特性。它充当互联网云和 Web 服务器之间的中介。出于安全原因,它非常有用,尤其是当您使用 Web 托管服务时。
7)请提及 Nginx 服务器的最佳用途是什么?
Nginx 服务器的最佳用途是使用 SCGI、WSGI 应用程序服务器、脚本的 FastCGI 处理程序在网络上部署动态 HTTP 内容。它还可以用作负载均衡器。
8)请提及 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 不支持运行时选择模块。
这些面试问题也会对你的口试有帮助
我注意到你的文章中有一个错误的说法。
8)请提及 Nginx 服务器中的主进程和工作进程是什么?
请更新它。
主进程维护配置,工作进程执行进程。
有一些误解,答案含义是一样的。
正确,请更新。主进程维护配置和读取,并控制和维护工作进程,而工作进程负责进程。
谢谢!错误已修复