nginx 1
1 什么是nginx
nginx同apache一样是一种web服务器 , 基于REST架构风格,以uri或者url作为沟通依据,通过http协议提供各种网络服务。
2 nginx的特性和基本功能
特性:
1 模块化设计,较好的扩展性。
2 高可靠性
3 支持热部署。 支持不停机更新配置文件,升级版本,更改日志文件。
4 低内存消耗。 10000个keep-alive模式下的非活动连接,仅需2.5M内存。
基本功能
1 静态资源的web服务器。
2 http协议反向代理服务器。
3 pop3和imap4 协议反向代理服务器。
4 支持FastCGI(LNMP)和uWSGI(python)协议。
3 web相关的功能
1 虚拟主机(server)
2 访问日志(支持日志缓冲提高其性能)
3 支持keep-alive和管道连接
4 url rewirte
5 路径别名
6 基于IP和用户名的访问限制
7 支持速率限制和并发数限制
8 更改配置和在线升级无需中断客户端用户的工作进程。
4 nginx长连接keepalive与pipeline
Tcp的keep-alive,通过发送给客户端空数据包,判断长时间没有数据发送的客户端是否还在线。
http的keep-alive:一次tcp连接,处理多个http请求。
nginx 的pipe-line: http请求处理过程中即可发送下一个http请求。
5 请解释 Nginx如何处理 HTTP请求
nginx采用反应器模式,主事件循环等待操作系统发出事件准备就绪的信号,这样数据可以从套接字中读取到缓存器处理。
6 在 Nginx中,如何使用未定义的服务器名称来阻止处理请求?
服务器名被保留为一个空字符串,它将在没有主机头字段的情况下被匹配,一个特殊的nginx非标准代码444 被返回,从而终止连接。
7 使用“反向代理服务器”的优点是什么?
反向代理服务器隐藏了原服务器的存在和特征,更安全
可以实现负载均衡。
8 请解释 Nginx 服务器上的 Master 和 Worker 进程分别是什么?
master进程通过信号来管理worker的运行状态。
1 master 接收http请求。
2 worker 实际处理请求。
9 请解释你如何通过不同于 80 的端口开启 Nginx?
server { listen 81; }
10 请解释是否有可能将 Nginx 的错误替换为 502 错误、503?
有可能 502 网关错误,503 服务器超载。
确保fastcgi_intercept_errors设置为on,并使用错误页面指令。
11 在 Nginx 中,解释如何在 URL 中保留双斜线?
nginx中设置 merge_slashes off
环境: http, server
12 请解释 ngx_http_upstream_module 的作用是什么?
ngx_http_upstream_module将多个服务器定义为一个服务器组,并通过fastcgi_pass,proxy_pass等命令来引用。
13 请解释什么是 C10K 问题?
是指服务器无法同时处理大量客户端(10000)的网络套接字。
14 请陈述 stub_status 和 sub_filter 指令的作用是什么?
stub_status: 该指令用于了解nginx的当前状态,如当前活动连接,接收和处理连接的总数。
sub_filter : 该指令用于搜索和替换响应中的内容,并快速修复陈旧的数据。
15 解释 Nginx 是否支持将请求压缩到上游?
利用 gunzip模块。
16 用 Nginx 服务器解释-s 的目的是什么?
用于运行nginx -s 参数的可执行文件。
17 解释如何在 Nginx 中获得当前的时间?
要在nginx中获得当前时间,必须使用ssi模块,$date_gmt ,\¥date_local变量。
18 解释如何在 Nginx 服务器上添加模块?
必须在编译时添加,不支持运行时添加。