面试被常问的Nginx


1.反向代理服务器Nginx

Nginx是一款由俄罗斯程序员以C语言开发的一块高性能HTTP服务器,它轻量并且性能极高、支持的功能也相对丰富而且支持组件式拓展和Lua脚本的支持。 正向代理:就是客户端代理,代理的是客户端,请求通过代理服务器去访问服务器。 反向代理:代理的是服务端,客户端对服务端的访问无感,直接面对的就是Nginx。

2.nginx.conf


3.高级配置

3.1 限流

Nginx自带的限流方案有多重,其中用的比较多的有:漏洞算法和令牌桶算法。 漏桶:

http {
    limit_req_zone $binary_remote_addr zone=minorLimit:1m rate=10r/s;
}
server {
    location / {
        limit_req zone=minorLimit;
        proxy_pass http://minor_upstream_1; }
}

rate代表每秒访问的次数,1m代表请求池的大小,1mb可以存储一万多个Request数据。 令牌桶:

http {
    limit_req_zone $binary_remote_addr zone=minorLimit:1m rate=10r/s;
}
server {
    location / {
        limit_req zone=minorLimit burst=20 nodelay;
        proxy_pass http://minor_upstream_1; }
}
burst代表超过请求阈值后能额外处理请求的数量。10r/s就是每100ms处理1个请求。

nodelay:禁止延迟处理burst设置的数量,全部立马处理。

3.2 动静分离

这个概念很好理解,就是将一些静态资源例如HTML、JS文件、图片等和服务器资源进行隔离配置访问。

3.3 长链接

http {
    keepalive_timeout  30s;
    keepalive_requests 10000;
}

Nginx的长链接配置默认是开启的。

3.4 连接池配置

worker_processes 8;#工作进程子数量,建议一般是CPU核心数的2倍 events { use epoll; # 网络IO模式,一般采用epoll性能最高,还有select、poll等。 worker_connections 2048; #连接池大小,控制总的连接数或者文件描述符,根据具体服务器配置来设置 }

4.Nginx多进程模型

Nginx采用固定数量的多进程模型,由一个主进程和多个子进程来共同完成Nginx的能力。 主进程负责工作进程的分配、启动、停止等。 工作进程负责处理具体的HTTP请求,接受客户端连接和响应。 Nginx使用多进程模式原因:

  • 进程之间的空间相互独立,不会涉及并发安全问题。
  • 进程和CPU绑定,节省了多线程模式的CPU切换。(进程调度仍然需要CPU切换消耗)
  • 工作进程相互独立、互不干扰,不会雪崩,如果是多线程模式,如果进程出现故障那么整个服务将受到影响。
#Java##计算机##编程##Java学习#
全部评论
学到了,感谢感谢
点赞 回复 分享
发布于 2022-07-27 19:13

相关推荐

无敌虾孝子:喜欢爸爸还是喜欢妈妈
点赞 评论 收藏
分享
10-30 22:18
已编辑
毛坦厂中学 C++
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-27 10:48
点赞 评论 收藏
分享
评论
2
20
分享
牛客网
牛客企业服务