`

nginx模块开发-hello world

 
阅读更多

参考 http://www.162cm.com/p/ngx_ext.html

 

nginx调试

1. configure --with-debug ...

2. 编译安装

3. nginx.conf error_log /path/to/errorlog debug;

此外,还可以增加daemon off的配置,让nginx把信息都打印到控制台。

 

hello world模块开发

1、在nginx.conf配置文件中增加location /hello { echo "hello world" }命令

2、创建模块目录,以及config文件、.c文件(其中.c文件的内容稍后介绍)

3、重新编译和安装nginx

auto/configure --with-debug --add-module=/root/03.nginx/ngx_module_echo/ --prefix=/root/03.nginx/nginx_bin

 

.c文件内容

1、ngx_module_t  ngx_module_echo。其中主要包含module context和module directives两个部分

2、ngx_http_module_t  ngx_echo_module_ctx。

其中包含preconfiguration/postconfiguration、create/init main configuration、create/merge server configuration、create/merge location configuration这4对回调。

因此hello world这个模块是对location中的命令处理,所以:实现最后一对回调,用于创建和合并location配置。

3、ngx_command_t  ngx_echo_commands[]。在其中的read_conf回调ngx_echo_readconf中处理echo命令。

4、在ngx_echo_readconf中注册ngx_http_core_loc_conf_t的handler。

后续在处理请求时会回调这个handler:static ngx_int_t ngx_echo_handler(ngx_http_request_t *r)。

在这个handler中获取本模块的配置,例如echo后面的”hello world“信息,写到输出中。

分享到:
评论

相关推荐

    echo-nginx-module-0.58.tar.gz

    同时,可以结合其他Nginx模块,如GeoIP和Lua,实现更复杂的逻辑。 四、配合GeoIP模块 GeoIP模块能够获取客户端IP地址对应的地理位置信息。当与echo-nginx-module结合时,我们可以将这些信息加入到日志中,或者在...

    nginx-http-echo-module:一个简单的Nginx回声模块

    `nginx-http-echo-module` 是一个非常实用的第三方模块,它为 Nginx 提供了丰富的回声功能,即服务器可以将接收到的请求数据原样返回给客户端,这对于开发和测试非常有用。 **模块介绍** `nginx-...

    源码安装nginx+php-fpm+http push测试通过

    8. **部署应用**:将`run.php`作为PHP应用程序,例如一个简单的"Hello, World!"脚本,确保`Nginx`可以正确处理PHP请求。 9. **启动和测试**:启动`Nginx`服务,访问`listen.html`页面,然后通过`send.html`触发...

    nginx hello 例子

    要深入理解 Nginx 模块开发,你需要熟悉 C 语言编程,理解 Nginx 的 API,以及事件驱动的编程模型。"深入理解 Nginx 模块开发与架构解析"这本书会详细介绍这些内容,帮助你构建自己的 Nginx 模块。 通过这个简单的 ...

    nginx模块开发指南(中文)

    ### Nginx模块开发指南(中文) #### 非常不错的Nginx源码分析文档 欢迎参考:[http://blog.csdn.net/yankai0219/article/details/8005721](http://blog.csdn.net/yankai0219/article/details/8005721),此文档...

    Nginx服务器中的模块编写及相关内核源码初探

    对于想要深入学习Nginx模块开发的开发者来说,掌握以下几个知识点是非常重要的: - Nginx模块架构和模块编程接口(MAI) - Nginx配置解析机制,包括如何定义新的配置指令 - Nginx事件驱动架构和网络IO模型 - 如何在...

    ngx_http_mytest_module.zip_nginx_world

    总之,“ngx_http_mytest_module.zip_nginx_world”为Nginx模块开发提供了一个很好的起点。通过分析和实践这个项目,开发者可以逐步掌握Nginx模块开发的关键技术,为进一步开发功能丰富的Nginx插件打下坚实基础。

    Nginx脚本

    在Nginx的开发和维护过程中,一些工具能提高我们的效率。例如,`nginx -t`可以用来测试配置文件的语法正确性,`nginx -s reload`用于在不中断服务的情况下重新加载配置。此外,还有一些专门针对Nginx的调试工具,如`...

    nginx上传下载之openresty-1.15.8.2.tar.gz

    OpenResty的核心组件包括Nginx、LuaJIT和一系列定制的Nginx模块。Nginx是一个高性能的反向代理服务器,用于处理静态文件、缓存、负载均衡等任务。LuaJIT则是一个高效的Lua虚拟机,它优化了Lua代码的执行效率。结合...

    跟我学Nginx+Lua开发

    5. **下载额外模块**:根据项目需求可能还需要下载额外的Nginx模块,如用于清理缓存的`ngx_cache_purge`模块和用于上游服务器健康检查的`nginx_upstream_check_module`模块。 ```bash cd /usr/servers/ngx_...

    Nginx 与Lua 工具

    OpenResty是Nginx与Lua结合的典范,它是一个基于Nginx核心的完整Web应用程序框架,集成了LuaJIT(Lua的Just-In-Time编译器)以及一系列精心挑选的Nginx模块,如lua-nginx-module和ngx_http_lua_module,这些模块使得...

    ASP.NET-Core-Hello:第一个项目

    浏览器会自动打开,显示默认的“Hello, World!”页面。 4. **在Visual Studio中打开项目**:可以使用Visual Studio打开生成的解决方案文件(`.sln`),利用IDE的高级功能进行开发。 **项目结构**: - `...

    在阿里云服务器上配置CentOS+Nginx+Python+Flask环境

    return 'Hello, World!' ``` 为了通过Nginx代理Flask应用,你需要配置Nginx。首先安装Nginx: ```bash sudo yum install nginx ``` 然后,创建一个Nginx配置文件,例如`/etc/nginx/conf.d/myapp.conf`,指定...

    Nginx+perl的web框架(Npweb )

    2. **安装Perl和相关模块**:确保Perl环境已经就绪,还需安装`CGI::Fast`等Perl模块,这些模块使得Perl脚本能够与Nginx协同工作。 3. **编写Perl脚本**:创建Perl脚本,使用`CGI::Fast`模块接收和响应HTTP请求。脚本...

    HTTP负载均衡器Slardar.zip

    因为大多数的nginx模块的开发包是由维护者发展的,它可以确保所有这些模块都发挥得很好。捆绑的软件组件是由各自的版权持有人的版权。示例代码:添加一个服务器到node-dev.example.com$ curl 127.0.0.1:1995/...

    Openresty服务器使用lua脚本写的Hello World简单实例

    本文将详细介绍如何在OpenResty上使用Lua脚本来实现一个简单的"Hello World"示例。 首先,我们需要在本地环境中安装OpenResty。通常,你可以从OpenResty官网下载最新版本的源码包,然后按照官方文档提供的步骤进行...

    node-deploy:用于测试部署可能性的 Hello world 节点应用程序

    6. **部署流程**:包括本地开发环境的设置、版本控制(如Git)、构建工具(如Webpack或Gulp)、服务器配置(如Nginx或Apache)、持续集成/持续部署(CI/CD)工具(如Jenkins或Travis CI)等。 7. **Docker**:为了...

    微服务Api网关框架11-20.7z

    "16.openresty的helloworld.mp4"可能展示了如何通过OpenResty构建一个基础的HTTP服务,这是所有Web开发的起点。 总的来说,这个压缩包提供了一个从基础到实践的OpenResty和Nginx学习路线,对于想要构建和优化微服务...

Global site tag (gtag.js) - Google Analytics