版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Nginx高频面试题及详细答案(实操版)一、基础认知类(初级必问)1、简单介绍一下Nginx,以及它的核心作用?Nginx是一款轻量级、高性能的HTTP和反向代理服务器,同时也可作为邮件代理服务器、负载均衡器使用,采用C语言开发,占用系统资源极低。核心作用主要分为四点:1.静态资源服务:高效处理图片、JS、CSS、静态页面等静态资源请求,性能远优于Tomcat、Apache;2.反向代理:接收客户端请求,转发至后端业务服务器,隐藏后端真实服务地址,提升安全性;3.负载均衡:将用户请求分发到多台后端服务器,解决单服务器压力瓶颈,提升服务可用性;4.网关层处理:实现HTTPS证书配置、URL重写、限流、缓存、跨域、黑白名单等通用功能。2、Nginx和Apache的核心区别?为什么线上大多用Nginx?核心区别:1.架构模型:Apache采用多进程/多线程同步阻塞模型,每一个请求对应一个进程/线程,高并发下资源占用极高;Nginx采用异步非阻塞、事件驱动模型,单进程可处理上万并发请求;2.并发能力:Apache单机并发上限低,一般几千并发;Nginx单机可支撑10w+高并发;3.资源占用:Nginx内存、CPU占用极低,稳定性更强;Apache高并发下容易卡顿、宕机;4.功能侧重:Apache模块丰富、适配性强,适合静态小站点;Nginx擅长高并发、反向代理、负载均衡,适配分布式架构。线上选用Nginx的核心原因:高并发、低消耗、高稳定、部署简单、适配微服务集群架构。3、Nginx的核心模块有哪些?Nginx模块分为核心模块、标准模块、第三方模块,工作中常用核心模块如下:1.核心模块:events事件模块、http核心模块,是Nginx运行的基础,负责事件监听、请求处理;2.访问控制模块:ngx_http_access_module,实现IP黑白名单访问限制;3.重写模块:ngx_http_rewrite_module,实现URL跳转、地址重写;4.代理模块:ngx_http_proxy_module,核心反向代理模块;5.负载均衡模块:ngx_http_upstream_module,实现多服务器负载分发;6.缓存模块:ngx_http_proxy_cache_module,实现静态资源缓存;7.限流模块:ngx_http_limit_req_module、ngx_http_limit_conn_module,实现请求限流、连接数限制。二、架构与原理类(中级高频)1、Nginx的进程模型是什么?各进程作用?Nginx采用主进程+多工作进程的Master-Worker进程模型,还有可选的缓存进程,整体架构简单且高效。1.Master主进程:负责读取、校验配置文件,管理所有Worker进程,执行重启、停止、热更新等操作,不处理用户请求;2.Worker工作进程:实际处理客户端的HTTP请求,每个Worker进程都是单线程、异步非阻塞运行,默认Worker进程数等于CPU核心数;3.Cache缓存进程:专门负责缓存文件的写入、清理、过期删除,分担Worker进程压力,提升缓存效率。优势:进程相互独立,单个Worker异常崩溃不会影响整体服务,Master可自动重启异常进程,保证服务稳定性。2、Nginx如何实现热部署、平滑重启?平滑重启的核心是不中断用户请求,更新配置并重启进程,流程如下:1.执行重启命令前,先校验nginx.conf配置文件语法是否正确;2.Master进程读取新配置,启动一批新的Worker工作进程;3.新Worker进程开始接收、处理新的用户请求;4.Master通知旧Worker进程停止接收新请求,等待旧进程中正在处理的请求全部完成后,自动销毁旧进程;整个过程无请求中断、无服务宕机,实现平滑更新配置和版本。常用命令:nginx-t(校验配置)、nginx-sreload(平滑重启)3、Nginx异步非阻塞模型的工作原理?传统服务器是同步阻塞模型,一个请求在等待资源(如读取文件、转发请求)时,线程会被阻塞,无法处理新请求。Nginx基于epoll事件驱动模型实现异步非阻塞:1.Worker进程通过epoll监听所有客户端连接事件;2.当请求需要等待IO操作时,Worker不会阻塞等待,而是将该请求挂起,转而去处理其他就绪的请求;3.当挂起的请求IO操作完成后,epoll会通知Worker进程,继续处理该请求后续逻辑;通过这种机制,单个Worker进程可以同时处理成千上万的请求,极大提升并发能力。三、反向代理与负载均衡(核心必考)1、正向代理和反向代理的区别?1.正向代理:代理客户端,代表客户端访问外网服务,服务器不知道真实客户端是谁。典型场景:翻墙、公司内网代理上网;2.反向代理:代理服务端,客户端访问代理服务器,代理转发请求到后端真实业务服务,客户端无感知。典型场景:项目线上网关、微服务请求转发。简单总结:正向代理替用户干活,反向代理替服务器干活。2、Nginx负载均衡有哪些策略?各自适用场景?Nginxupstream内置4种基础负载均衡策略,还有常用扩展策略:1.轮询(默认):请求按顺序依次分发到每台后端服务器,无特殊配置默认使用。适用于所有服务器性能一致、无状态的业务场景;2.权重轮询weight:给性能更好的服务器设置更高权重,权重越高,分配的请求越多。适用于后端服务器硬件配置、性能不一致的场景;3.ip_hash:根据客户端IP哈希值分配服务器,保证同一客户端始终访问同一台后端服务。适用于需要保持会话、登录状态一致的业务;4.least_conn:最少连接策略,请求分发到当前活跃连接数最少的服务器。适用于服务器性能差异大、请求处理耗时不一致的场景;5.url_hash(第三方):根据请求URL哈希分发,相同URL固定访问同一服务器,适合静态资源缓存场景;6.fair(第三方):根据后端服务器响应速度分发,响应快的优先分配请求,适配动态业务接口。3、负载均衡中proxy_pass末尾加/和不加/的区别?这是面试和实操高频坑点,核心区别是是否替换匹配的路径:1.不加/:会将location匹配的完整路径拼接转发。例:location/api匹配请求/api/user,转发地址为后端地址/api/user;2.加/:会截断location匹配的路径,只拼接后续路径。例:location/api/匹配请求/api/user,转发地址为后端地址/user;日常配置中,需要严格根据后端接口路径规则选择,避免出现404路径错误。四、缓存、限流、重写(实操高频)1、Nginx静态缓存的作用和配置思路?核心作用:将静态资源缓存到Nginx本地,用户重复请求时直接由Nginx返回资源,无需转发后端服务器,减少后端压力,大幅提升访问速度。配置思路:1.对图片、视频、JS、CSS、静态页面等资源设置缓存过期时间;2.通过expires指令控制缓存时长,静态永久资源可设置max;3.动态接口、频繁更新的资源禁止缓存,避免数据延迟;4.可配置proxy_cache实现后端动态资源缓存,适配高读低写业务。2、Nginx限流的两种方式及区别?Nginx核心两种限流方案,针对不同限流场景:1.limit_req(请求限流):基于漏桶算法,限制单位时间内的请求次数,控制接口访问频率。适用于防刷接口、防高频请求,比如秒杀、公开接口限流;2.limit_conn(连接限流):限制单个IP的最大并发连接数,控制同时在线的请求数量。适用于防止单IP大量长连接占用服务器资源。日常生产环境一般搭配使用,既限制请求频率,又限制并发连接。3、Nginxrewrite重写的常用场景和flag区别?常用场景:域名跳转、HTTP强制跳转HTTPS、旧URL适配新地址、伪静态化、非法路径拦截。四大flag核心区别:1.last:终止当前location匹配,重新发起新的location匹配,内部跳转,浏览器地址不变;2.break:终止当前匹配,不再重新匹配,直接执行后续逻辑;3.redirect:302临时重定向,浏览器地址变化,SEO不收录,适用于临时跳转;4.permanent:301永久重定向,浏览器缓存跳转地址,SEO收录,适用于长期域名、地址替换。五、HTTPS与跨域问题1、Nginx配置HTTPS的核心流程?1.域名备案、申请SSL证书(免费/付费证书);2.将证书文件、私钥文件上传至服务器,配置Nginx证书路径;3.开启ssl模块,配置ssl_certificate、ssl_certificate_key;4.配置SSL加密协议、加密套件,关闭老旧不安全协议;5.配置HTTP强制跳转HTTPS,保证全站加密访问;6.重启Nginx校验配置,测试HTTPS访问正常。2、前端跨域为什么可以通过Nginx解决?原理是什么?浏览器的跨域限制是前端浏览器的同源策略限制,只针对浏览器和后端的直接请求。Nginx解决跨域的核心原理:1.前端页面和请求接口统一访问Nginx域名/端口,满足浏览器同源条件;2.Nginx作为中间层,接收前端请求后,转发至不同的后端服务;3.整个请求过程是Nginx与后端服务的服务端通信,不存在浏览器跨域限制;同时也可通过Nginx添加Access-Control响应头,直接放行跨域请求,适配临时跨域场景。六、性能优化与故障排查(高阶面试)1、线上Nginx常用的性能优化手段有哪些?1.进程优化:Worker进程数设置为CPU核心数,开启Worker进程绑定CPU,减少进程切换开销;2.连接优化:调高单进程最大连接数,开启长连接,减少TCP三次握手开销;3.资源缓存:合理配置静态资源缓存、代理缓存,减少后端请求量;4.压缩优化:开启gzip压缩,压缩静态资源和响应数据,减少传输带宽;5.日志优化:非核心场景关闭access日志,或异步打印日志,减少IO消耗;6.内核优化:调整服务器TCP内核参数,调高文件句柄数,解决高并发下文件句柄耗尽问题;7.安全优化:隐藏Nginx版本号,配置黑白名单、限流,防止恶意攻击。2、常见Nginx报错原因及排查方案?1.403Forbidden原因:目录权限不足、文件不存在、IP被拦截、目录无默认索引文件;排查:查看文件权限、access日志、access黑白名单配置。2.404NotFound原因:请求路径错误、proxy_pass路径配置错误、后端接口不存在、静态资源丢失;排查:核对location规则、转发路径、后端接口完整性。3.502BadGateway高频报错,原因:后端服务宕机、端口未监听、程序卡死、连接超时、后端进程崩溃;排查:检查后端服务状态、端口监听、日志报错,测试后端接口单独访问是否正常。4.504GatewayTimeout原因:后端接口处理超时、网络延迟高、Nginx转发超时时间设置过短;排查:优化后端接口性能、调大Nginx超时参数、检查服务器网络。3、Nginx高可用如何实现?单机Nginx存在单点故障,线上生产环境通过Nginx+Keepalived实现高可用:1.部署两台Nginx服务器(主备模式),配置完全一致;2.Keepalived配置虚拟IP(VIP),对外统一提供访问入口;3.主节点正常运行时,VIP绑定主节点,所有请求由主Nginx处理;4.当主节点Nginx宕机、进程异常时,Keepalived自动检测故障,将VIP漂移到备节点;5.全程无人工干预,用户访问无感知,彻底解决Nginx单点故障问题。七、场景面试题(实操问答)1、项目上线后,访问卡顿、响应慢,如何通过Nginx层面排查优化?1.查看Nginx日志,区分是静态资源慢还是后端接口慢;2.静态资源慢:开启gzip压缩、配置静态缓存、优化图片资源、开启浏览器缓存;3.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 达州市拔尖创新人才早期培养中心与达州嘉祥外国语学校联合教师招聘(36人)笔试备考题库及答案解析
- 2026重庆綦江区选拔社区工作者后备库300人考试参考题库及答案解析
- 2026年工业大数据平台国产化中间件迁移实践
- 苏科版数学七年级下册 (南京专用) 期末考试模拟练习卷(范围:第7-12章) 含答案
- 2026年佛山电影发展有限公司人员招聘笔试备考试题及详细答案解析
- 2026年天水市烟草专卖局人员招聘笔试参考题库及详细答案解析
- 《自家婚礼布置方案》课件
- 2026年合肥建设投资控股集团有限公司人员招聘考试备考试题及详细答案解析
- 2026年石家庄市烟草专卖局人员招聘考试备考题库及详细答案解析
- 2026年北京曙光航空电气有限责任公司人员招聘笔试参考题库及详细答案解析
- 自动驾驶车辆创投项目计划书
- 东乌旗奥尤特铜矿矿山地质环境保护与土地复垦方案
- 2026年国土空间规划中心下属事业单位选聘考试试题(附答案)
- 格力销售内部控制制度
- 小学语文五年级上册“快乐读书吧”《中国民间故事》整本书阅读导读课教学设计
- 小学国有资产管理内控制度
- GB/T 7582-2025声学听阈与年龄和性别关系的统计分布
- 【初中语文】《天上有颗“南仁东星”》说课稿++统编版语文八年级上册
- 2026淮北矿业集团校招面笔试题及答案
- 2025年青岛华通集团社招笔试及答案
- 水利水电工程生产安全重大事故隐患判定导则(2025版)解读课件
评论
0/150
提交评论