nginx-http-echo-module

A simple Nginx echo module

MIT License

Stars
201

Practical development Nginx Module

简体中文

nginx_module_echo

echo string

Nginx Version

Nginx1.0.10 https://github.com/nginx/nginx/releases/tag/release-1.0.10 nginx1.0.10.png

The development environment configuration

OS : CentOS Linux release 7.2.1511 (Core)

Install a clean compile Nginx

  1. Download a Nginx10.10 and unpack it nginx1.0.10.png

  2. Install the GCC and the lib Nginx need install_GCC.png Nginx_lib.png

  3. ./configure --prefix=/usr/local/nginx && make && make install configure_ok.png make && make install.png nginx_install_ok.png

  4. Nginx run start_nginx.png nginx_install_ok.png

Definition module configuration structure

typedef struct {
    ngx_str_t ed;  //该结构体定义在这里 https://github.com/nginx/nginx/blob/master/src/core/ngx_string.h
} ngx_http_echo_loc_conf_t;

Define Nginx instruction and parameter conversion function

definition module Context

  1. Define the type of ngx_http_module_t structure variables
    定义注入点结构体.png
  2. Initialize a configuration structure
    初始化一个配置结构体.png
  3. Will the father block configuration information incorporated into this structure Implement the configuration of inheritance
    合并父block的配置信息.png

Write the Handler really work part of the module

Combination Nginx module

Finishing module code According to the Nginx official specification

Write the config file

ngx_addon_name=ngx_http_echo_module
HTTP_MODULES="$HTTP_MODULES ngx_http_echo_module"
NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/src/ngx_http_echo_module.c"

make && make install

 ./configure --prefix=/usr/local/nginx/ --add-module=/root/ngx_dev && make && make install

Successful installation

Modify the Nginx configuration file test Module

Nginx echo Module The successful running

If the repo help you welcome star fork Thanks!

reference

  1. http://wiki.nginx.org/Configuration
  2. http://tengine.taobao.org/book/
  3. http://blog.codinglabs.org/articles/intro-of-nginx-module-development.html
  4. https://www.nginx.com/resources/wiki/modules/