扫码阅读
手机扫码阅读

Nginx面试常问题&工作原理揭秘!

126 2024-07-21

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

查看原文:Nginx面试常问题&工作原理揭秘!
文章来源:
咸鱼运维杂谈
扫码关注公众号

Nginx面试常见问题总结

什么是Nginx?

Nginx是一款轻量级、高性能的反向代理web服务器,支持多种协议,可用于反向代理和负载均衡。

Nginx的优点

  • 跨平台、配置简单。
  • 支持高并发连接,使用异步非阻塞网络I/O。
  • 占用内存小,开源,成本低。
  • 稳定性高,支持热升级。
  • 内置健康检查功能,保障服务可用性。

Nginx的应用场景

  • 作为Http服务器。
  • 搭建虚拟主机。
  • 实现负载均衡。
  • 进行反向代理。

Nginx如何实现高并发

通过异步非阻塞IO机制结合epoll事件驱动模型处理请求,worker进程在等待后端服务器响应期间可处理其他请求。

正向代理与反向代理

正向代理介于客户端与服务器之间,为客户端代理请求。反向代理则对后端服务器进行隔离保护,为多个客户端分发请求。

Nginx的工作模式

Nginx采用多进程/单线程模式,各进程独立,减少资源竞争,提高稳定性。

Nginx与Apache的异同

  • 相同点:都是web服务器,可实现负载均衡和反向代理。
  • 差异点:Nginx基于事件,更轻量,处理高并发更佳;Apache基于流程,性能更稳定。

Nginx负载均衡算法

  • 轮询(RR)。
  • 加权轮询(weight)。
  • IP绑定(ip_hash)。
  • URL哈希(url_hash)。
  • 智能调度(fair)。

location的作用和优先级

根据用户请求的URI执行不同应用,优先级从精确匹配到正则匹配不同。

Nginx后端服务健康检查

利用nginx自带模块或nginx_upstream_check_module模块进行健康检查。

设置worker进程数量

推荐设置为auto模式,根据CPU个数自动分配。

异步同步与阻塞非阻塞

异步允许程序在I/O操作后继续执行,同步则需等待I/O完成。阻塞会挂起线程等待响应,非阻塞则不会。

I/O事件通知与多路复用

I/O事件通知分为水平触发和边缘触发,多路复用技术如select、poll、epoll用于提高并发处理能力。

Nginx工作模型

主进程 + 多个worker进程模型,避免惊群问题,提高性能。

想要了解更多内容?

查看原文:Nginx面试常问题&工作原理揭秘!
文章来源:
咸鱼运维杂谈
扫码关注公众号