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