nginx面试题及详细答案.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

nginx面试题及详细答案

一、基础概念类

1.什么是nginx?它的核心作用有哪些?

答案:nginx是一款开源的高性能HTTP服务器、反向代理服务器,同时也支持IMAP/POP3/SMTP等协议的代理。它的核心优势是高并发、低内存占用、可扩展性强。

核心作用主要有3点:

(1)静态资源服务:直接处理HTML、CSS、JS、图片等静态文件的请求,无需转发到后端应用,提升响应速度;

(2)反向代理:接收客户端请求,将请求转发到后端的应用服务器(如Tomcat、SpringBoot服务),并将后端响应结果返回给客户端,隐藏后端服务细节,实现负载均衡和服务隔离;

(3)负载均衡:当后端有多台应用服务器时,nginx可根据预设策略(如轮询、权重)将请求分发到不同服务器,避免单台服务器过载,提升系统可用性和并发处理能力。

2.nginx和Apache的核心区别是什么?实际项目中如何选择?

答案:核心区别集中在并发处理机制、资源占用、功能侧重上:

(1)并发处理机制:nginx采用异步非阻塞IO模型(epoll/kqueue),通过少量进程/线程就能处理大量并发连接,适合高并发场景;Apache默认采用多进程/多线程模型(prefork),每个连接对应一个进程/线程,并发量高时会占用大量内存,性能下降明显;

(2)资源占用:相同并发量下,nginx内存占用远低于Apache;

(3)功能侧重:Apache功能强大、模块丰富,配置灵活,适合复杂的HTTP场景(如动态页面处理);nginx轻量高效,更擅长静态资源服务、反向代理和负载均衡,常作为前端代理层使用。

选择建议:高并发、高流量的互联网项目(如电商、直播),优先用nginx做前端代理,搭配后端应用服务器;传统中小型项目,若需求简单、动态页面较多,可直接用Apache;也可采用“nginx+Apache”架构,nginx处理静态资源和反向代理,Apache处理动态请求。

二、配置与核心功能类

1.nginx的核心配置文件结构是什么?主要包含哪些核心模块?

答案:nginx的核心配置文件默认是nginx.conf,整体结构分为4个层级,从外到内依次是:

(1)全局块:配置影响nginx全局的参数,如worker进程数、错误日志路径、进程PID文件路径等,例如“worker_processes4;”表示开启4个worker进程;

(2)events块:配置nginx与用户的网络连接相关参数,如IO模型(useepoll;)、每个worker进程的最大连接数(worker_connections1024;)等;

(3)http块:配置HTTP服务器的核心参数,是最核心的配置块,包含全局HTTP配置(如日志格式、连接超时时间)和多个server块;

(4)server块:对应一个虚拟主机,可配置域名、端口、根目录等,一个http块中可包含多个server块,实现多域名/多端口部署;每个server块内部可包含多个location块,用于匹配不同的请求路径,配置不同的处理规则。

核心模块:

(1)ngx_http_core_module:核心HTTP模块,提供http块、server块、location块的基础配置;

(2)ngx_http_proxy_module:反向代理模块,提供proxy_pass等指令,实现请求转发;

(3)ngx_http_upstream_module:负载均衡模块,用于定义后端服务器集群;

(4)ngx_http_static_module:静态资源处理模块,支持处理HTML、图片等静态文件;

(5)ngx_http_log_module:日志模块,配置访问日志的格式和存储路径。

2.如何配置nginx实现反向代理?请写出核心配置示例。

答案:反向代理的核心是通过proxy_pass指令将客户端请求转发到后端服务。核心配置示例如下(假设客户端访问nginx的80端口,转发到后端00:8080的SpringBoot服务):

nginx

http{

#全局HTTP配置(省略部分)

server{

listen80;#nginx监听端口

server_namelocalhost;#访问域名(可改为实际域名,如)

#匹配所有请求(/表示匹配根路径及所有子路径)

location/{

proxy_pass00:8080;#后端服务地址,必须加http://

proxy_set_headerHost$host;#传递客户端请求的Host头到后端

p

文档评论(0)

151****9429 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档