1 Star 0 Fork 31

阿明 / Ebooks

forked from Java精选 / Ebooks 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
最全45道面试题2021年Nginx面试题及答案汇总.md 7.35 KB
一键复制 编辑 原始数据 按行查看 历史

最全45道面试题2021年Nginx面试题及答案汇总

全部面试题答案,更新日期:01月30日,直接下载吧!

下载链接:高清500+份面试题资料及电子书,累计 10000+ 页大厂面试题 PDF

Nginx

题1:Nginx 中有多个 server{} 时先匹配哪个?

如果请求同时命中多个server{},则是从上到下匹配。

如果是分布在多个配置文件中,则通过目录中的摆放顺序,在前面的文件优先被读取。

题2:Nginx 都有哪些应用场景?

http服务器

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

虚拟主机

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

反向代理,负载均衡

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

配置安全管理

使用Nginx搭建API接口网关,对每个接口服务进行拦截。

题3:Nginx 中如何禁止某IP不可访问?

Nginx配置禁止192.168.0.1不可访问,修改nginx.conf文件,在server中添加deny ip配置如下:

server {
  listen       80;
  server_name  localhost;
 
  charset utf8;
 
  deny  192.168.0.1;
 
  location / {
    proxy_pass  http://blog.yoodb.com/;
    proxy_set_header Host      $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

题4:Nginx 中如何在 URL 中保留双斜线?

要在URL中保留双斜线,就必须使用merge_slashes参数。

语法:merge_slashes [on/off]

默认值: merge_slashes on

可以在http、server模块中使用。nginx配置信息组织结构如下:

http       |__server      |     |__location      |     |__location      |      |__server            |__location

题5:Nginx 中常见状态码有哪些?

状态码413

request entity too large:默认nginx会限制用户长传文件大小,如果想修改限制的文件大小可以使用client_max_body_size修改。

状态码502

bad gateway:一般为后端服务无响应。比如反向代理到127.0.0.1,如果127.0.0.1没有响应则nginx会返给客户端502。

状态码504

gateway time-out:一般为后端服务执行超时,nginx默认等待时间为60秒。

题6:Nginx 中是如何实现高并发?

一个主进程,多个工作进程,每个工作进程可以处理多个请求,每进来一个request,会有一个worker进程去处理。

但不是全程的处理,处理到可能发生阻塞的地方,比如向上游(后端)服务器转发request,并等待请求返回。

那么,这个处理的worker继续处理其他请求,而一旦上游服务器返回了,就会触发这个事件,worker才会来接手,这个request才会接着往下走。

由于web server的工作性质决定了每个request的大部份生命都是在网络传输中,实际上花费在server机器上的时间片不多。

这是几个进程就解决高并发的秘密所在。即@skoo所说的webserver刚好属于网络io密集型应用,不算是计算密集型。

题7:为什么 Nginx 要做动、静分离?

在我们的软件开发中,有些请求是需要后台处理的(如:.jsp,.do等等),有些请求是不需要经过后台处理的(如:css、html、jpg、js等等),这些不需要经过后台处理的文件称为静态文件,否则动态文件。

因此后台处理忽略静态文件,但是如果直接忽略静态文件的话,后台的请求次数就明显增多了。在我们对资源的响应速度有要求的时候,应该使用这种动静分离的策略去解决动、静分离将网站静态资源(HTML,JavaScript,CSS等)与后台应用分开部署,提高用户访问静态代码的速度,降低对后台应用访问。这里将静态资源放到nginx中,动态资源转发到tomcat服务器中,毕竟Tomcat的优势是处理动态请求。

题8:Nginx 如何处理HTTP请求?

Nginx使用反应器模式。

主事件循环等待操作系统发出准备事件的信号,这样数据就可以从套接字读取,在该实例中读取到缓冲区并进行处理。

单个线程可以提供数万个并发连接。

题9:Nginx 中如何限制并发连接数?

Nginx中ngx_http_limit_conn_module模块提供了限制并发连接数的功能,可以使用limit_conn_zone指令以及limit_conn执行进行配置。

实例配置如下:

http {
    limit_conn_zone $binary_remote_addr zone=myip:10m;
    limit_conn_zone $server_name zone=myServerName:10m;
    server {
        location / {
            limit_conn myip 10;
            limit_conn myServerName 100;
            rewrite / http://www.lijie.net permanent;
        }
    }
}

题10:ngx_http_upstream_module 模块有什么作用?

ngx_http_upstream_module用于定义可通过fastcgi传递、proxy传递、uwsgi传递、memcached传递和scgi传递指令来引用的服务器组。

题11:为什么要使用-nginx

题12:nginx-中-stub_status-和-sub_filter-指令有什么作用

题13:为什么-nginx-性能这么高

题14:nginx-中有可能将错误替换为-502503-错误吗

题15:nginx-如何处理服务请求

题16:nginx-中如何获得当前的时间

题17:nginx-中-location指令的作用是什么

题18:nginx-中如何解决前端跨域问题

题19:nginx-为什么不使用多线程

题20:nginx-和-apache-有什么区别

题21:nginx-中-location-匹配优先级顺序

题22:nginx-服务器解释--s-参数有什么作用

题23:nginx-中产生-502-错误可能原因

题24:nginx目录结构都有哪些

题25:nginx-中如何配置实现高可用性

大厂面试题

大厂面试题

大厂面试题

Java
1
https://gitee.com/AminDev/ebooks.git
git@gitee.com:AminDev/ebooks.git
AminDev
ebooks
Ebooks
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891