Nginx面试题

《林老师带你学编程》知识星球是由多个工作10年以上的一线大厂开发人员联合创建,希望通过我们的分享,帮助大家少走弯路,可以在技术的领域不断突破和发展。

🔥 具体的加入方式:

1.什么是nginx?

Nginx是一个高性能的HTTP和反向代理服务器。同时也是一个 IMAP/POP3/SMTP 代理服务器。   官方 网站:http://nginx.org

2.nginx主要特征?

处理静态文件,索引文件以及自动索引;打开文件描述符缓冲. 无缓存的反向代理加速,简单的负载均衡 和容错. FastCGI,简单的负载均衡和容错.模块化的结构。包括 gzipping, byte ranges, chunked

responses,以及 SSI-filter 等filter。如果由 FastCGI 或其它代理服务器处理单页中存在的多个 SSI,则这 项处理可以并行 运行,而不需要相互等待。

支持 SSL 和 TLSSNI.

Nginx 它支持内核 Poll 模型,能经受高负载的考验,有报告表明能支持高达 50,000 个并发连接数。

Nginx 具有很高的稳定性。   例如当前 apache一旦上到 200 个以上进程,  web 响应速度就明显非常缓慢  了。而 Nginx 采取了分阶段资源分配技术,使得它的 CPU 与内存占用率非常低。  nginx 官方表示保持   10,000 个没有活动的连接,它只占 2.5M 内存,所以类似 DOS 这样的攻击对 nginx 来说基本上是毫无用 处的。

Nginx 支持热部署。它的启动特别容易, 并且几乎可以做到 7*24 不间断运行,即使运 行数个月也不需要 重新启动。对软件版本进行进行热升级。

Nginx 采用 master-slave 模型,能够充分利用 SMP 的优势,且能够减少工作进程在磁 盘 I/O 的阻塞延 迟。当采用 select()/poll()调用时,还可以限制每个进程的连接数。

Nginx 代码质量非常高,代码很规范,手法成熟,   模块扩展也很容易。特别值得一提的是强大的 Upstream 与 Filter 链。

Nginx 采用了一些 os 提供的最新特性如对 sendfile (Linux2.2+) ,accept-filter (FreeBSD4.1+), TCP_DEFER_ACCEPT (Linux 2.4+)的支持,从而大大提高了性能。

免费开源,可以做高并发负载均衡。

3.nginx 常用命令?

启动 nginx 。

停止 nginx -s stop 或 nginx -s quit 。

重载配置 ./sbin/nginx -s reload(平滑重启) 或 service nginx reload 。

重载指定配置文件 .nginx -c /usr/local/nginx/conf/nginx.conf 。

查看 nginx 版本 nginx -v 。

检查配置文件是否正确 nginx -t 。

显示帮助信息 nginx -h 。

4.工作模式及连接数上限?

events {
use epoll; #epoll 是多路复⽤ IO(I/O Multiplexing)中的⼀种⽅ 式,但是仅⽤于 linux2.6
以上内核,可以⼤⼤提⾼ nginx 的性能
worker_connections 1024;#单个后台 worker process 进程的最⼤并发链接数
# multi_accept on;
}

5.nginx负载均衡几种算法?

5种。

1.轮询模式(默认)

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 2.权重模式

指定轮询几率,  weight和访问比率成正比,用于后端服务器性能不均的情况

3.IP_hash模式   (IP散列)

每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。 4.url_hash模式

5.fair模式

按后端服务器的响应时间来分配请求,响应时间短的优先分配。

6.nginx有几种进程模型?

分为master-worker模式和单进程模式。在master-worker模式下,有一个master进程和至少一个的 worker进程,单进程模式顾名思义只有一个进程。

7.如何定义错误提示页面?

# 定义错误提示页面

error_page 500 502 503 504 /50x.html;
       location = /50x.html { root /root;
}

8.如何精准匹配路径?

location  =开头表示精准匹配

location = /get {
#规则 A }

9.路径匹配优先级?

多个 location 配置的情况下匹配顺序为

首先匹配 = ,其次匹配^~, 其次是按文件中顺序的正则匹配,最后是交给 / 通用匹配。当 有匹配成功时 候,停止匹配,按当前匹配规则处理请求。

10.如何把请求转发给后端应用服务器?

location = / {
      proxy_pass http://tomcat:8080/index
}

11.如何根据文件类型设置过期时间?

location ~* \\.(js|css|jpg|jpeg|gif|png|swf)$ {
   if (-f $request_filename) {
        expires 1h;
        break;
   }
}

12.禁止访问某个目录?

location ^~/path/ {
    deny all;
}

13.nginx负载均衡实现过程?

查看更多

滚动至顶部