后端经典面试题合集, Nginx 是什么?它有哪些应用场景?
后端经典面试题合集, Nginx 是什么?它有哪些应用场景?
QA
Step 1
Q:: Nginx 是什么?
A:: Nginx 是一个高性能的 HTTP 服务器和反向代理服务器,同时也是一个 IMAP/POP3/
SMTP 代理服务器。它最初由 Igor Sysoev 开发,专为处理高并发请求而设计,具有轻量、稳定、高效等优点。Nginx 能够作为一个反向代理、负载均衡器以及 HTTP 缓存使用。
Step 2
Q:: Nginx 的应用场景有哪些?
A:: Nginx 的应用场景主要包括:
1.
反向代理:Nginx 可用于代理客户端请求到后端服务器,隐藏真实服务器信息。
2.
负载均衡:Nginx 可以将流量分发到不同的服务器,提升应用的可用性和性能。
3.
静态资源服务:Nginx 非常适合用来提供静态资源文件,如图片、CSS、JavaScript 文件等。
4.
HTTP 缓存:Nginx 能够缓存动态内容的输出结果,减少后端服务器的负载。
5. SSL/
TLS 终结:Nginx 可处理 HTTPS 请求,卸载后端服务器的加密处理压力。
Step 3
Q:: Nginx 如何实现负载均衡?
A:: Nginx 通过反向代理的方式实现负载均衡,支持多种负载均衡算法,例如轮询、加权轮询、IP 哈希等。通过配置 upstream 模块,可以将流量分配到多个后端服务器上。Nginx 还支持健康检查,可以自动剔除不可用的服务器节点。
Step 4
Q:: Nginx 和 Apache 的区别是什么?
A:: Nginx 和 Apache 都是常用的 Web 服务器,但它们有显著的区别:
1. 架构不同:Nginx 使用事件驱动模型,能够高效处理高并发请求,而 Apache 采用的是线程/
进程模型,在高并发场景下效率较低。
2.
静态内容处理:Nginx 在处理静态内容时比 Apache 更快,因为它直接从磁盘读取文件而不需要通过模块。
3.
配置复杂度:Apache 配置较复杂,而 Nginx 的配置相对简单。
4.
扩展性:Apache 有丰富的模块可以扩展功能,Nginx 的模块化设计则较为轻量。
Step 5
Q:: Nginx 如何处理 SSL/
TLS 终结?
A:: Nginx 可以通过配置 SSL 模块来处理 HTTPS 请求,它负责处理客户端与服务器之间的 SSL/
TLS 加密通讯。Nginx 可以在接收请求时完成 SSL 握手和解密操作,然后将解密后的请求转发给后端服务器,从而减轻后端服务器的处理负担。