面试被常问的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切换消耗)
  • 工作进程相互独立、互不干扰,不会雪崩,如果是多线程模式,如果进程出现故障那么整个服务将受到影响。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值