面试Nginx的几个常见问题(

Posted roostinghawk

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面试Nginx的几个常见问题(相关的知识,希望对你有一定的参考价值。

1、Nginx 服务器上的 Master 和 Worker 进程分别是什么

Master 进程:读取及评估配置和维持
Worker 进程:处理请求

 

2、怎么添加模块?

Firstly, you have to select the nginx module during the compile. Runtime selection of module is not being supported by the Nginx server.
在编译过程添加模块

 

3、什么是 C10K 问题?

C10K 问题是指无法同时处理大量客户端(10,000)的网络套接字。 

 

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

只需将请求删除的服务器就可以定义为: 
Server listen 80;server_name “ “ ;return 444; 
 

 

5、Nginx和Apache的区别?

Firstly, Nginx is an event-based web server and Apache is a process-based server.
1、Nginx是事件驱动,Apache是过程驱动
Nginx is best known for its speed and Apache is best known for its power. Nginx is the best when it comes to memory consumption and connection whereas Apache is not best in this category. In Nginx, a single thread is handling all of the requests whereas in Apache single thread handles a single request. Nginx is best when you want the load balancing. But Apache will refuse the new connection when traffic reaches the limit of the process. Apache provides lots of functionality as compared to Nginx.

技术图片

更为通用的方案是,前端 nginx 抗并发,后端 apache 集群,配合起来会更好。

 

6、Nginx是什么语言写的?

C语言

 

7、Nginx的负载均衡策略有哪几种?

调度策略含义
轮询 按照时间顺序,逐一分配到不同的后端服务器
加权轮询 weight值越大,分配到的访问几率越高
ip_hash 每个请求按访问IP的hash结果分配,这样来自同一个IP的请求固定访问一个后端服务器,可以解决分布式session问题,但不是最优的解决办法,另一个即集中式session存储校验,将session放到redis集群当中。
url_hash(第三方) 按照访问的URL的hash结果来分配请求,使一个URL始终定向到同一个后端服务器
less_conn 最少连接数,哪个机器连接数少,就分发
fair(第三方) 按后端服务器的响应时间来分配请求,响应时间短的优先分配。


8、如何设置在81端口上运行nginx?
修改nginx.conf里的端口号

 

参考:

https://www.onlineinterviewquestions.com/nginx-interview-questions/

https://www.jianshu.com/p/19d0516ea29e

https://segmentfault.com/a/1190000010677483

以上是关于面试Nginx的几个常见问题(的主要内容,如果未能解决你的问题,请参考以下文章

累积面试中遇到的几个未解决的问题

线程池相关的几个面试问题解析

记录面试遇到的几个自己不太熟悉的问题

BAT 面试常被问的几个 Glide 问题,记录一下

Nginx与安全有关的几个配置

面试官常问的Nginx的那几个问题?