前言
前两篇分别介绍了OpenResty核心概念和,优势与架构等信息,进行本篇之前建议至少观看一遍。
<李> OpenResty - - - - - - - - - -企业级理论实践篇李> <李> OpenResty - - - - - - - - - -企业级入门实践篇李>
引用>背景
之前篇章介绍了OpenResty是基于Nginx为基础核心的开发平台,
引用>
本篇将继续介绍基础平台(Nginx)的主要特性。特性
执行阶段
OpenResty将应用分为4个大阶段,11个小阶段,如下图所示。
<李>初始化阶段:主人进程启动预加载/生成工人进程预加载李> <李>转发/访问阶段:url转发,权限判断李> <李>内容处理/生成阶段:内容生成李> <李>日志阶段:日志记录李>
引用>
开发中常用的7阶段
<李> set_by_lua *:流程分支处理判断变量初始化李> <李> rewrite_by_lua *:转发,重定向,缓存等功能(例如特定请求代理到外网)李> <李> access_by_lua *: IP准入,接口权限等情况集中处理(例如配合iptable完成简单防火墙)李> <李> content_by_lua *:内容生成李> <李> header_filter_by_lua *:响应头部过滤处理(例如添加头部信息)李> <李> body_filter_by_lua *:响应体过滤处理(例如完成应答内容统一成大写)李> <李> log_by_lua *:会话完成后本地异步完成日志记录(日志可以记录在本地,还可以同步到其他机器)李>
引用>测试(常用的7阶段)
环境
<代码类=" language-bash "> root@localhost ~ #猫/etc/redhat-release Linux CentOS释放7.4.1708(核心) root@localhost ~ # uname - r 3.10.0-693.el7.x86_64 代码>OpenResty版本
<代码类=" language-bash "> root@localhost ~ #/usr/local/openresty/bin/openresty - v nginx版本:openresty/1.13.6.2 代码>创建测试项目目录
<代码类=" language-bash "> [root@localhost ~] # mkdir vp openresty-phase-test/{配置、日志} mkdir:创建目录“openresty-phase-test” mkdir:创建目录“openresty-phase-test/conf” mkdir:创建目录“openresty-phase-test/日志”代码>编写配置文件
通过ngx.log输出错误级别日志至文件中
引用><代码类=" language-bash "> [root@localhost ~] #猫openresty-phase-test/conf/nginx.conf worker_processes 1;#设置工人数量 error_log日志/error.log;#指定错误日志文件路径 事件{ worker_connections 1024;#单个工人进程最大允许同时建立外部连接的数量 } http { 服务器{ 听9999;#设置监听端口,注意系统其它服务是否已占用该端口 位置/{ set_by_lua_block $一个{ ngx.log (ngx。呃,我是set_by_lua_block阶段) } rewrite_by_lua_block { ngx.log (ngx。呃,我是rewrite_by_lua_block阶段) } access_by_lua_block { ngx.log (ngx。呃,我是access_by_lua_block阶段) } content_by_lua_block { ngx.log (ngx。呃,我是content_by_lua_block阶段) } header_filter_by_lua_block { ngx.log (ngx。呃,我是header_filter_by_lua_block阶段) } body_filter_by_lua_block { ngx.log (ngx。呃,我是body_filter_by_lua_block阶段) } log_by_lua_block { ngx.log (ngx。呃,我是log_by_lua_block阶段) } } } }代码>通过openresty运行应用
<代码类=" language-bash "> [root@localhost ~] #/usr/local/openresty/bin/openresty - p openresty-phase-test 代码>查看错误日志文件内容
<代码类=" language-bash "> [root@localhost ~] #猫openresty-phase-test/日志/error.log (root@localhost ~) # 代码><强>此时错误日志文件内容为空强>
通过卷发工具发起测试请求[本地,端口为配置文件中的9999]
<代码类=" language-bash "> [root@localhost ~] #卷发127.0.0.1:9999 代码>OpenResty - - - - - - - - - -核心执行阶段篇