摘要:服务器架构模块化结构服务器的开发完全遵循模块化设计思想什么是模块化开发单一职责原则,一个模块只负责一个功能将程序分解,自顶向下,逐步求精高内聚,低耦合的模块化结构核心模块最基本最核心的服务,如进程管理权限控制日志记录标准模块服务器的标准功能
Nginx服务器架构 模块化结构
什么是模块化开发?Nginx 服务器的开发完全遵循模块化设计思想
单一职责原则,一个模块只负责一个功能
将程序分解,自顶向下,逐步求精
高内聚,低耦合
Nginx的模块化结构核心模块: Nginx最基本最核心的服务,如进程管理、权限控制、日志记录;
标准HTTP模块: Nginx服务器的标准HTTP功能;
可选HTTP模块: 处理特殊的HTTP请求
邮件服务模块: 邮件服务
第三方模块: 作为扩展,完成特殊功能
Nginx的模块清单
核心模块
ngx_core
ngx_errlog
ngx_conf
ngx_events
ngxeventcore
ngx_epll
ngx_regex
标准HTTP模块
ngx_http
ngxhttpcore #配置端口,URI分析,服务器相应错误处理,别名控制(alias)等
ngxhttplog #自定义access日志
ngxhttpupstream #定义一组服务器,可以接受来自proxy, Fastcgi,Memcache的重定向;主要用作负载均衡
ngxhttpstatic
ngxhttpautoindex #自动生成目录列表
ngxhttpindex #处理以/结尾的请求,如果没有找到index页,则看是否开启了random_index;如开启,则用之,否则用autoindex
ngxhttpauthbasic #基于http的身份认证(authbasic)
ngxhttpaccess #基于IP地址的访问控制(deny,allow)
ngxhttplimit_conn #限制来自客户端的连接的响应和处理速率
ngxhttplimit_req #限制来自客户端的请求的响应和处理速率
ngxhttpgeo
ngxhttpmap #创建任意的键值对变量
ngxhttpsplit_clients
ngxhttpreferer #过滤HTTP头中Referer为空的对象
ngxhttprewrite #通过正则表达式重定向请求
ngxhttpproxy
ngxhttpfastcgi #支持fastcgi
ngxhttpuwsgi
ngxhttpscgi
ngxhttpmemcached
ngxhttpempty_gif #从内存创建一个1×1的透明gif图片,可以快速调用
ngxhttpbrowser #解析http请求头部的User-Agent 值
ngxhttpcharset #指定网页编码
ngxhttpupstreamiphash
ngxhttpupstreamleastconn
ngxhttpupstream_keepalive
ngxhttpwrite_filter
ngxhttpheader_filter
ngxhttpchunked_filter
ngxhttprange_header
ngxhttpgzip_filter
ngxhttppostpone_filter
ngxhttpssi_filter
ngxhttpcharset_filter
ngxhttpuserid_filter
ngxhttpheaders_filter #设置http响应头
ngxhttpcopy_filter
ngxhttprangebodyfilter
ngxhttpnotmodifiedfilter
可选HTTP模块
ngxhttpaddition #在响应请求的页面开始或者结尾添加文本信息
ngxhttpdegradation #在低内存的情况下允许服务器返回444或者204错误
ngxhttpperl
ngxhttpflv #支持将Flash多媒体信息按照流文件传输,可以根据客户端指定的开始位置返回Flash
ngxhttpgeoip #支持解析基于GeoIP数据库的客户端请求
ngxgoogleperftools
ngxhttpgzip #gzip压缩请求的响应
ngxhttpgzip_static #搜索并使用预压缩的以.gz为后缀的文件代替一般文件响应客户端请求
ngxhttpimage_filter #支持改变png,jpeg,gif图片的尺寸和旋转方向
ngxhttpmp4 #支持.mp4,.m4v,.m4a等多媒体信息按照流文件传输,常与ngxhttpflv一起使用
ngxhttprandom_index #当收到/结尾的请求时,在指定目录下随机选择一个文件作为index
ngxhttpsecure_link #支持对请求链接的有效性检查
ngxhttpssl #支持https
ngxhttpstub_status
ngxhttpsub_module #使用指定的字符串替换响应中的信息
ngxhttpdav #支持HTTP和WebDAV协议中的PUT/DELETE/MKCOL/COPY/MOVE方法
ngxhttpxslt #将XML响应信息使用XSLT进行转换
邮件服务模块
ngxmailcore
ngxmailpop3
ngxmailimap
ngxmailsmtp
ngxmailauth_http
ngxmailproxy
ngxmailssl
第三方模块
echo-nginx-module #支持在nginx配置文件中使用echo/sleep/time/exec等类Shell命令
memc-nginx-module
rds-json-nginx-module #使nginx支持json数据的处理
lua-nginx-module
Nginx的web请求处理机制作为服务器软件,必须具备并行处理多个客户端的请求的能力, 工作方式主要以下3种:
多进程(Apache)
优点: 设计和实现简单;子进程独立
缺点: 生成一个子进程要内存复制, 在资源和时间上造成额外开销
多线程(IIS)
优点: 开销小
缺点: 开发者自己要对内存进行管理;线程之间会相互影响
异步方式(Nginx)
经常说道异步非阻塞这个概念, 包含两层含义:
通信模式:
同步: 发送方发送完请求后,等待并接受对方的回应后,再发送下个请求
异步: 发送方发送完请求后,不必等待,直接发送下个请求
Nginx的事件驱动模型文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/39207.html
摘要:版本的特性并行的三次握手四次挥手粘包问题,连接池,攻击通信原理加密算法配置文件逐行理解与配置配置规则错误的排查架构原理的理解的了解配置文件进程数与和内存的关系垃圾回收内存泄漏运行过程协议与的区别注是扩展库版本是版本算法一致性 1,http (1)request reponse (2)code:200 302,304 400 404 403 500 502 504 nginx499 ...
摘要:它同时也和微服务架构相互促进,并肩前行。为了反向代理的速度,会和后端保持一个连接池。好了,现在我们可以知道,可以很好的胜任微服务架构中的了。我认为并不适合微服务架构,但依然是有个复杂的架构方案的,这个主题改天再说。 背景 大家都知道,Docker这些年让IT界产生了深刻的变革,从开发到测试到运维,处处都有它的身影。它同时也和微服务架构相互促进,并肩前行。 在最新版的 Docker(CE...
摘要:它同时也和微服务架构相互促进,并肩前行。为了反向代理的速度,会和后端保持一个连接池。好了,现在我们可以知道,可以很好的胜任微服务架构中的了。我认为并不适合微服务架构,但依然是有个复杂的架构方案的,这个主题改天再说。 背景 大家都知道,Docker这些年让IT界产生了深刻的变革,从开发到测试到运维,处处都有它的身影。它同时也和微服务架构相互促进,并肩前行。 在最新版的 Docker(CE...
阅读 1111·2021-11-25 09:43
阅读 2930·2019-08-30 15:54
阅读 3239·2019-08-30 15:54
阅读 2943·2019-08-30 15:44
阅读 1593·2019-08-26 12:18
阅读 2225·2019-08-26 11:42
阅读 843·2019-08-26 11:35
阅读 3260·2019-08-23 18:22