Nginx
它在进程里处理网络流量, 所以它是一个网关, 它就具备了通用网关的能力, 例如
- IP 黑白名单
- 对 IP 进行限流
- 对输入输出的内容进行压缩
- 日志
- 负载均衡
- 修改请求和响应内容
- 自定义功能
- 协议支持, nginx 可以通过开发的模块来支持TCP, UDP, HTTP2, QUIC, Websocket, 它功能很多, 它提供了一个配置的能力,提供配置来给用户选择需要什么能力, 这个配置就是 nginx conf
它是多进程的单线程模型, 一个主进程, 但不负责处理网络流量,它负责管理配置, 平滑重启,绑定特权端口. 单线程就避免了线程切换, 它的单线程异步模型消除上下文切换开销, 另外一个是工作进程, 负责处理网络流量, 一般它的线程数是等于CPU 核心数量