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面试高频题及实战答案

一、基础配置与核心概念(入门必问)

问题:Nginx主要有哪些核心模块?日常配置中最常用的是哪几个?

答案:核心模块分“核心模块(ngx_core_module)”和“功能模块”。核心模块是Nginx运行的基础,包含进程管理、配置解析等;功能模块常用的有:

ngx_http_core_module(HTTP核心模块,处理HTTP请求、端口监听、虚拟主机配置);

ngx_http_proxy_module(反向代理模块,实现proxy_pass转发);

ngx_http_upstream_module(负载均衡模块,管理后端服务集群);

ngx_http_gzip_module(压缩模块,优化响应速度);

ngx_http_rewrite_module(URL重写模块,地址跳转、伪静态)。

日常配置中HTTP核心模块、反向代理模块、负载均衡模块是高频使用的“铁三角”。

问题:Nginx配置文件中,worker_processes和worker_connections分别表示什么?如何根据服务器配置合理设置?

答案:

worker_processes:设置Nginx的工作进程数,默认1。建议配置为“CPU核心数”或“CPU核心数×2”(比如4核CPU设为4或8),避免进程切换开销;

worker_connections:每个工作进程的最大连接数,默认1024。表示单个worker能同时处理的网络连接数(包括与客户端、后端服务的连接)。

合理设置原则:总连接数≈worker_processes×worker_connections,且不能超过系统最大文件描述符(ulimit-n查看,建议设为65535)。比如4核CPU,worker_processes4,worker_connections10240,总连接数可达4万左右,满足中小型服务需求。

问题:如何用Nginx配置一个简单的虚拟主机(基于域名)?

http{

includemime.types;

default_typeapplication/octet-stream;

server{

listen80;#监听80端口

server_name;#匹配的域名

root/usr/local/nginx/html/test;#网站根目录

indexindex.htmlindex.htm;#默认首页

#访问日志配置

access_loglogs/test.access.logmain;

}

}

配置后需在客户端hosts文件中绑定域名与服务器IP,即可通过访问。

答案:核心是通过server块匹配域名,配置网站根目录和默认页面,示例如下:

二、反向代理与负载均衡(核心考点)

问题:什么是反向代理?Nginx实现反向代理的核心指令是什么?举一个实际场景示例。

server{

listen80;

server_name;

root/usr/local/nginx/html/frontend;

indexindex.html;

#匹配接口请求,转发到后端

location/api/{

proxy_pass00:8080/;#末尾/表示去除/api前缀转发

proxy_set_headerHost$host;#传递客户端Host信息

proxy_set_headerX-Real-IP$remote_addr;#传递客户端真实IP

}

}

答案:

反向代理:客户端请求先发送到Nginx服务器,Nginx再转发到后端业务服务器(如Tomcat、Node.js),后端服务器处理后通过Nginx返回给客户端(客户端看不到后端真实服务器);

核心指令:proxy_pass(指定后端服务器地址);

实际场景:前端项目部署在Nginx,后端接口部署在00:8080,通过反向代理解决跨域问题,配置如下:

问题:Nginx支持哪些负载均衡策略?分别适用于什么场景?如何配置加权轮询?

http{

#定义后端服务集群

upstreambackend_servers{

server01:8080weight=3;#权重3,接收3/(3

文档评论(0)

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

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

1亿VIP精品文档

相关文档