龙空技术网

十年架构师都难顶的Nginx面试40连问

知食份子. 192

前言:

今天各位老铁们对“nginx面试题汇总”大约比较关切,我们都需要知道一些“nginx面试题汇总”的相关文章。那么小编也在网络上收集了一些有关“nginx面试题汇总””的相关文章,希望兄弟们能喜欢,大家一起来学习一下吧!

什么是Nginx?

Nginx是一个 轻量级/高性能的反向代理Web服务器,用于 HTTP、HTTPS、SMTP、POP3 和 IMAP 协议。他实现非常高效的反向代理、负载平衡,他可以处理2-3万并发连接数,官方监测能支持5万并发,现在中国使用nginx网站用户有很多,例如:新浪、网易、 腾讯等。

Nginx 有哪些优点?

跨平台、配置简单。

非阻塞、高并发连接:处理 2-3 万并发连接数,官方监测能支持 5 万并发。

内存消耗小:开启 10 个 Nginx 才占 150M 内存。

成本低廉,且开源。

稳定性高,宕机的概率非常小。

内置的健康检查功能:如果有一个服务器宕机,会做一个健康检查,再发送的请求就不会发送到宕机的服务器了。重新将请求提交到其他的节点上

Nginx应用场景?

http服务器。Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。

虚拟主机。可以实现在一台服务器虚拟出多个网站,例如个人网站使用的虚拟机。

反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会应为某台服务器负载高宕机而某台服务器闲置的情况。

nginz 中也可以配置安全管理、比如可以使用Nginx搭建API接口网关,对每个接口服务进行拦截。

Nginx怎么处理请求的?

server { # 第一个Server区块开始,表示一个独立的虚拟主机站点 listen 80; # 提供服务的端口,默认80 server_name localhost; # 提供服务的域名主机名 location / { # 第一个location区块开始 root html; # 站点的根目录,相当于Nginx的安装目录 index index.html index.html; # 默认的首页文件,多个用空格分开} # 第一个location区块结果

首先,Nginx 在启动时,会解析配置文件,得到需要监听的端口与 IP 地址,然后在 Nginx 的 Master 进程里面先初始化好这个监控的Socket(创建 S ocket,设置 addr、reuse 等选项,绑定到指定的 ip 地址端口,再 listen 监听)。

然后,再 fork(一个现有进程可以调用 fork 函数创建一个新进程。由 fork 创建的新进程被称为子进程 )出多个子进程出来。

之后,子进程会竞争 accept 新的连接。此时,客户端就可以向 nginx 发起连接了。当客户端与nginx进行三次握手,与 nginx 建立好一个连接后。此时,某一个子进程会 accept 成功,得到这个建立好的连接的 Socket ,然后创建 nginx 对连接的封装,即 ngx_connection_t 结构体。

接着,设置读写事件处理函数,并添加读写事件来与客户端进行数据的交换。

最后,Nginx 或客户端来主动关掉连接,到此,一个连接就寿终正寝了。

Nginx 是如何实现高并发的?

什么是正向代理?

什么是反向代理?

反向代理服务器的优点是什么?

Nginx目录结构有哪些?

Nginx配置文件nginx.conf有哪些属性模块?

cookie和session区别?

为什么 Nginx 不使用多线程?

nginx和apache的区别

什么是动态资源、静态资源分离?

为什么要做动、静分离?

什么叫 CDN 服务?

Nginx负载均衡的算法怎么实现的?策略有哪些?

如何用Nginx解决前端跨域问题?

Nginx虚拟主机怎么配置?

基于虚拟主机配置域名

基于端口的虚拟主机

location的作用是什么?

Location正则案例

限流怎么做的?

漏桶流算法和令牌桶算法知道?

漏桶算法

令牌桶算法

Nginx配置高可用性怎么配置?

Nginx怎么判断别IP不可访问?

在nginx中,如何使用未定义的服务器名称来阻止处理请求?

怎么限制浏览器访问?

Rewrite全局变量是什么?

Nginx 如何实现后端服务的健康检查?

Nginx 如何开启压缩?

ngx_http_upstream_module的作用是什么?

什么是C10K问题?

Nginx是否支持将请求压缩到上游?

如何在Nginx中获得当前的时间?

用Nginx服务器解释-s的目的是什么?

如何在Nginx服务器上添加模块?

生产中如何设置worker进程的数量呢?

nginx状态码

分享一个技术栈的高频面试题,这些面试题都是我整理的一些面试文档,希望对有面试或者有跳槽打算的同学有所帮助,需要的可以私信【666】即可获取

标签: #nginx面试题汇总