Nginx的面试题

本文详细介绍了Nginx的面试常见问题,包括Nginx的功能、为什么选择Nginx、高并发实现、处理HTTP请求的方式、与Apache的区别、常用模块、调优方法、命令操作、日志分析、DDoS防御策略以及配置和使用场景。Nginx以其高性能、稳定性及负载均衡能力在Web服务器和反向代理中广泛应用。
摘要由CSDN通过智能技术生成

1、什么是 Nginx ?

Nginx ,是一个 Web 服务器和反向代理服务器,用于 HTTP、HTTPS、SMTP、POP3 和 IMAP 协议。

目前使用的最多的 Web 服务器或者代理服务器,像淘宝、新浪、网易、迅雷等都在使用。

Nginx 的主要功能如下:

作为 http server (代替 Apache ,对 PHP 需要 FastCGI 处理器支持)

FastCGI:Nginx 本身不支持 PHP 等语言,但是它可以通过 FastCGI 来将请求扔给某些语言或框架处理。

反向代理服务器

实现负载均衡

虚拟主机

nginx版本号:nginx version: nginx/1.12.2

2、为什么要用Nginx?

优点:

  • 跨平台、配置简单
  • 非阻塞、高并发连接:处理2-3万并发连接数,官方监测能支持5万并发
  • 内存消耗小:开启10个nginx才占150M内存 成本低廉:开源
  • 内置的健康检查功能:如果有一个服务器宕机,会做一个健康检查,再发送的请求就不会发送到宕机的服务器了。重新将请求提交到其他的节点上。
  • 节省宽带:支持GZIP压缩,可以添加浏览器本地缓存
  • 稳定性高:宕机的概率非常小
  • master/worker结构:一个master进程,生成一个或者多个worker进程
  • 接收用户请求是异步的:浏览器将请求发送到nginx服务器,它先将用户请求全部接收下来,再一次性发送给后端web服务器,极大减轻了web服务器的压力
  • 一边接收web服务器的返回数据,一边发送给浏览器客户端
  • 网络依赖性比较低,只要ping通就可以负载均衡
  • 可以有多台nginx服务器
  • 事件驱动:通信机制采用epoll模型

3、Nginx是如何实现高并发的?

Nginx为一群服务器做代理,每次请求经过nginx转发给不同的服务器;具体的由负载均衡的策略决定

在配置文件中,配置upStream 指向多个服务器并指定负载均衡的策略

在server中配置proxy_pass指向upStream

4、Nginx是如何处理http请求的?

Nginx使用反应器模式。主事件循环等待操作系统发出准备事件的信号,这样数据就可以从套接字读取,在该实例中读取到缓冲区并进行处理。单个线程可以提供数万个并发连接。

5、nginx和apache的区别

Apache模块多,基本想到的都可以找到,更成熟,bug少,nginx的bug多。

nginx超稳定,是目前的主流,有丰富的特性,成熟的技术和开发社区。

6、nginx用过哪些模块

  • ngx_http_gzip_module:压缩模块,对Nginx返回的数据压缩,属于性能优化模块
  • ngx_http_fastcgi_module:FastCGI模块,和 动态应用相关的模块,例如PHP
  • ngx_http_proxy_module:Proxy代理模块
  • ngx_http_upstream_module:负载均衡模块,可以实现网站的负载均衡功能及节点的健康检查
  • ngx_http_rewrite_module:URL地址重写模块
  • ngx_http_limit_conn_module:限制用户并发连接数及请求数模块
  • ngx_http_log_module:访问日志模块,以指定的格式记录Nginx客户访问日志等信息
  • ngx_http_stub_status_module:记录Nginx基本访问状态信息等模块
  • ngx_http_referer_module模块: 可以基于这个模块做防盗链。Referer 是 HTTP 请求header 的一部分,当浏览器(或者模拟浏览器行为)向web 服务器发送请求的时候,头信息里有包含 Referer 。比如我在www.google.com 里有一个www.baidu.com 链接,那么点击这个www.baidu.com ,它的header 信息里就有: Referer=http://www.google.com

7、Nginx调优方式:

  • 隐藏 Nginx 版本号
  • 隐藏 Nginx 版本号和软件名
  • 更改 Nginx 服务的默认用户
  • 优化 Nginx worker 进程数
  • 绑定 Nginx 进程到不同的 CPU 上
  • 优化 Nginx 处理事件模型
  • 优化 Nginx 单个进程允许的最大连接数
  • 优化 Nginx worker 进程最大打开文件数
  • 优化服务器域名的散列表大小
  • 开启高效文件传输模式
  • 优化 Nginx 连接超时时间
  • 限制上传文件的大小
  • FastCGI 相关参数调优
  • 配置 Nginx gzip 压缩
  • 配置 Nginx expires 缓存
  • 优化 Nginx日志(日志切割)
  • 优化 Nginx 站点目录
  • 配置 Nginx 防盗链
  • 配置 Nginx 错误页面优雅显示
  • 优化 Nginx 文件权限
  • Nginx 防爬虫优化
  • 控制 Nginx 并发连接数
  • 集群代理优化

8、 Nginx 常用命令?

启动 /usr/local/nginx/sbin/nginx 。

停止 nginx -s stop 或 nginx -s quit 。

重载配置 /usr/local/nginx/sbin/nginx -s reload(平滑重启) 或 service nginx reload 。

重载指定配置文件 .nginx -c /usr/local/nginx/conf/nginx.conf 。

查看 nginx 版本 /usr/local/nginx/sbin/nginx -V。

检查配置文件是否正确 nginx -t 。

显示帮助信息 nginx -h 。

9、nginx日志分析怎么做的

我们公司使用ELK做nginx的日志分析 主要分析nginx的access.log日志

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: nginx面试题高频问题包括如下几个方面: 1. Nginx中如何限制访问频率? 在Nginx中,可以使用ngx_http_limit_req_module模块来限制访问频率,其原理是基于漏桶算法实现的。可以在nginx.conf配置文件中使用limit_req_zone命令和limit_req命令来限制单个IP的请求处理频率。\[1\] 2. Nginx中如何判断某个IP不可访问? 可以使用Nginx的配置指令来判断某个IP是否可访问。例如,可以使用if语句来判断访问的IP地址是否为特定的IP,如果是,则返回403禁止访问。例如:if ($remote_addr = 192.168.9.115) { return 403; }\[2\] 3. Nginx和Apache的区别是什么? Nginx和Apache是两种常见的Web服务器,它们有一些核心区别。最核心的区别在于Nginx是异步的,多个连接可以对应一个进程,而Apache是同步的,一个连接对应一个进程。此外,Nginx是基于事件的Web服务器,而Apache是基于流程的Web服务器。Nginx在内存消耗和连接方面表现较好,适合负载均衡,而Apache在支持多种语言和插件方面更加灵活。\[3\] 4. 什么是动态资源和静态资源分离? 动态资源和静态资源分离是一种优化Web服务器性能的方法。动态资源是指需要经过服务器处理的资源,例如PHP脚本,而静态资源是指不需要经过服务器处理的资源,例如HTML文件、CSS文件、图片等。通过将动态资源和静态资源分别存放在不同的服务器或者不同的路径下,可以提高服务器的处理效率和响应速度。\[3\] #### 引用[.reference_title] - *1* *2* *3* [Nginx常见面试题整理---40题](https://blog.csdn.net/qq_29974229/article/details/125718921)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值