nginx原理(nginx原理 proxy_pass)
nginx原理
一、 nginx 简单使用说明:
1.登录官网 http
2.解压所下载文件到指定的盘符
3.启动服务器,步骤如下:
打开 dos 命令窗口,切换到 nginx 的目录下。
输入启动命令:start nginx
打开浏览器输入网址:http://localhost:80(80 端口可以省略)
二、nginx 运行原理:
Nginx 由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端请求映射到一个 location block(location 是 Nginx 配置中的一个指令,用于 URL 匹配),而在这个 location 中所配置的每个指令将会启动不同的模块去完成相应的工作。
nginx原理 proxy_pass
使用python manage.py runserver的方式启动,这样升级代码Django会自动重新加载,不用手工重启。nginx配置成proxy_pass http://127.0.0.1:8000就行。
nginx原理及应用
swoole扩展在运行后会接管PHP的控制权,进入事件循环。当IO事件发生后,swoole会自动回调指定的PHP函数。也就是说,swoole就是个披了php外衣的nginx,大量的功能都是用c来实现。一些功能的调用其实并没php什么事,它只是个纯粹的胶水,有什么功能全用c在实现,然后执行完成再回调给php。
nginx原理和架构
架构顾名思义,就是解决业务问题的框架结构。 其有两个主体特征:
1
支撑系统主要业务
2
从主业务视角看,架构功能足够内聚单一
支撑主业务流程比较好理解,可以从两个方面考虑:
首先业务的主工作量都要在架构上体现,即架构抽象了主业务流程内的重复并提供一种设计构造让这些主业务流程复用;否则就很可能就是架构设计抽象的广度不够或者深度不够。
其次就是刚开始设计架构的时候,先考虑业务的主要方面,一些细节旁支可以先不用考虑,架构的本质就是抽象和组织,过早考虑细节和旁支会干扰主架构抽象的清晰程度;否则就会犯架构面面俱到的问题。
孙子兵法云:备前则后寡,备后则前寡;备左则右寡,备右则左寡;无所不备,则无所不寡。讲的就是克服架构设计中的贪心和侥幸心理,想面面俱到,其实就是面面都不俱到。
能够抓住主要问题,解决透彻就很成功了
架构的功能内聚、单一是架构另一个重要特征。比如人们有居住的需求,需要房屋,从用户需求分析,对房屋墙壁来说,要能起到遮风挡雨、采光通风、坚固宽敞等作用。
转换为业务需求就是要墙壁具备支撑、屏蔽等功能。对于普通的砖房,墙壁占据了主体功能的相当比重,满足架构特征1,但是墙壁同时混杂了支撑和屏蔽两项功能,不满足架构特征2,这样调整屏蔽功能时(像改变门窗的位置以改善采光通风等)就会影响承重支撑功能,带来安全隐患。
nginx原理图解
Nginx的模块和工作原理
nginx由内核和模块组成:
1.内核:其设计非常微小和简洁,完成的工作也非常简单。仅通过查找配置文件将客户端请求映射到一个location block(location是nginx配置中的一个指令,用例URL匹配),而在这个location中所配置的每个指令将会启动不同的模块取完成相应的工作。
2.从结构上分为‘核心模块、基础模块、第三方模块’:
核心模块:HTTP模块、EVENT模块、MAIL模块。
基础模块:HTTP Access模块、HTTPFastCGI模块、HTTP Proxy模块、HTTP Rewrite模块。
第三方模块:HTTP Upstream Request Hash模块、Notice模块、HTTP Access Key模块以及根据需求自己开发的模块。
3.从功能上划分为‘Handlers、Filters、Proxies’:
Handlers(处理器模块):此类模块直接出来请求,并输出内容和修改headers信息等操作。Handlers处理器模块一般只能有一个。
Filters(过滤器模块):此类模块主要对其他处理器模块输出的内容进行修改操作,最后有nginx输出。
Proxies(代理类模块):此类模块是nginx的HTTP Upstream质量的模块,这些模块主要与后端一些服务(例如FastCGI)进行交互,实现服务代理和负载均衡等功能。
本网站文章仅供交流学习 ,不作为商用, 版权归属原作者,部分文章推送时未能及时与原作者取得联系,若来源标注错误或侵犯到您的权益烦请告知,我们将立即删除.