编程技术分享平台

网站首页 > 技术教程 正文

后端开发组件,nginx从模块开始,让你对nginx有全新的理解

xnh888 2024-10-10 13:09:40 技术教程 32 ℃ 0 评论

nginx的用途nginx使用起来非常方便、代码阅读也很方便,对于一个软件,一个开源代码而言用这两点只要用得好相对而言还是很方便的。

Nginx是一个轻量级、高性能、稳定性高、并发性好的HTTP和反向代理服务器。也是由于其的特性,其应用非常广

nginx主要用在那呢 总结领福利

反向代理

正向代理:某些情况下,代理我们用户去访问服务器,需要用户手动的设置代理服务器的ip和端口号。

反向代理:是用来代理服务器的,代理我们要访问的目标服务器。

代理服务器接受请求,然后将请求转发给内部网络的服务器(集群化),

并将从服务器上得到的结果返回给客户端,此时代理服务器对外就表现为一个服务器。



  • 负载均衡

负载均衡,英文名称为Load Balance,其含义就是指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行,例如FTP服务器、Web服务器、企业核心应用服务器和其它主要任务服务器等,从而协同完成工作任务。负载均衡构建在原有网络结构之上,它提供了一种透明且廉价有效的方法扩展服务器和网络设备的带宽、加强网络数据处理能力、增加吞吐量、提高网络的可用性和灵活性。



Nginx模块


Nginx 里有一个 master 进程和多个 worker 进程。master 进程并不处理网络请求,主要负责调度工作进程:加载配置、启动工作进程及非停升级。worker 进程负责处理网络请求与响应。

master进程主要用来管理worker进程,具体包括如下4个主要功能:

接收来自外界的信号。

向各worker进程发送信号。

监控woker进程的运行状态。

当woker进程退出后(异常情况下),会自动重新启动新的woker进程。

Ngnix 是如何实现高性能的?

基于异步及非阻塞的事件驱动模型,可以说是 Nginx 得以获得高并发、高性能的关键因素。这一点上和 Netty 类似,底层都是使用的 BSD kqueue、Linux epoll 及 Solaris event ports。

多进程机制

使用多进程的好处有两点:

进程之间不共享资源,不需要加锁,减少了使用锁对性能造成的影响,同时降低编程的复杂度,降低开发成本。

采用独立的进程,可以让进程互相之间不会影响,如果一个进程发生异常退出时,其它进程正常工作,master 进程则很快启动新的 worker 进程,确保服务不会中断,从而将风险降到最低。

内存池

为了避免出现内存碎片,减少向操作系统申请内存的次数、降低各个模块的开发复杂度,Nginx 设计了简单的内存池,它的作用主要是把多次向系统申请内存的操作整合成一次,这大大减少了 CPU 资源的消耗,同时减少了内存碎片。

模块化设计

高度模块化的设计是 Nginx 的架构基础。Openresty 就是在 Nginx 上引入了 lua 等第三方模块,使得扩展更加方便了


总结:关注+后台私信;资料;两个字可以免费领取 资料内容包括:C/C++,Linux,golang,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK,嵌入式 等。。。



本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表