Hello World HTTP模

1.构造config

ngx_addon_name=ngx_http_mytest_module

HTTP_MODULES="$HTTP_MODULESngx_http_mytest_module"

NGX_ADDON_SRCS="$NGX_ADDON_SRCS$ngx_addon_dir/ngx_http_mytest_module.c"

2.在ngx_http_mytest_module.c中定义mytest模块

#include

#include

#include

static ngx_int_t ngx_http_mytest_handler(ngx_http_request_t* r);

static char* ngx_http_mytest(ngx_conf_t* cf, ngx_command_t* cmd, void* conf);

//用于定义模块的配置文件參数

static ngx_command_t ngx_http_mytest_commonds[] = {

{

ngx_string("mytest"),

NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_HTTP_LMT_CONF | NGX_CONF_NOARGS,

ngx_http_mytest,

NGX_HTTP_LOC_CONF_OFFSET,

0,

NULL

}

ngx_null_command

};

//指向ngx_http_module接口(HTTP框架要求)

static ngx_http_module ngx_http_mytest_module_ctx = {

NULL,

NULL,

NULL,

NULL,

NULL,

NULL,

NULL,

NULL

};

//定义mytest模块

ngx_module_t ngx_http_mytest_module = {

ngx_MODULE_v1,

&ngx_http_mytest_module_ctx,

ngx_http_mytest_commands,

NGX_HTTP_MODULE,

NULL,

NULL,

NULL,

NULL,

NULL,

NULL,

NULL,

NGX_MODULE_V1_PADDING

};

//当在某个配置块中出现mytest配置项时。nginx会调用ngx_http_mytest方法

static char* ngx_http_mytest(ngx_conf_t* cf, ngx_command_t* cmd, void* conf)

{

ngx_http_core_loc_conf_t* clcf;

clcf = ngx_http_conf_get_module_loc_conf(cf, ngx_http_core_module);

clcf->handler = ngx_http_mytest_handler;

return NGX_CONF_OK;

}

//在这里处理用户请求,并发送响应

static ngx_int_t ngx_http_mytest_handler(ngx_http_request_t* r)

{

if(!(r->method & (NGX_HTTP_GET | NGX_HTTP_HEAD))){

return NGX_HTTP_NOT_ALLOWED;

}

ngx_int_t rc = ngx_http_discard_request_body(r);

if(rc != NGX_OK){

return rc;

}

ngx_str_t type = ngx_string("text/plain");

ngx_str+t response = ngx_string("Hello World!");

r->headers_out.status= NGX_HTTP_OK;

r->headers_out.content_length_n = response.len;

r->headerS_out.content_type = type;

rc = ngx_http_send_header(r);

if(rc == NGX_ERROR || rc->NGX_OK || r->header_only){

return rc;

}

ngx_buf_t* b;

b = ngx_create_temp_buf(r->pool, response.len);

if(b == NULL){

return NGX_HTTP_INTERNAL_SERVER_ERROR;

}

ngx_memcpy(b->pos, response.data, response.len);

b->last = b->pos + response.len;

b->last_buf = 1;

ngx_chain_t out;

out.buf = b;

out.next = NULL;

return ngx_http_output_filter(r, &out);

}

3.在ngx.conf中http里面默认的server中增加例如以下配置

location /test{

mytest;

}

4.编译安装nginx

./configure --add-module=/home/chen123/nginx/exp2 黄色区域为config和ngx_http_mytest_module.c的安装文件夹)

make

sudo make install

5.启动nginx

sudo /usr/local/nginx/sbin/nginx

6.显示结果例如以下:

版权声明:本文博主原创文章,博客,未经同意不得转载。

Linux里面nginx显示Hello,Nginx得知——Hello World模相关推荐

  1. linux下面安装和配置nginx

    下载nginx-1.0.2.tar.gz wget nginx-1.0.2.tar.gz 解压 nginx-1.0.2.tar.gz tar -xzvf nginx-1.0.2.tar.gz 配置安装 ...

  2. 在Linux系统下载与安装Nginx

    在Linux系统下载与安装Nginx 安装过程: 1.安装依赖 yum -y install gcc pcre-devel zlib-devel openssl opensll-devel 2.下载N ...

  3. (三)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - Nginx环境搭建

    因为在网上发现系统性.严谨(特别是在安全方面)的Linux部署方面的参考文章很少,于是整理以下六篇Linux环境部署的系列性文章,其为本人在实践中,完整的搭建一个基于Linux系统上Centos+Ng ...

  4. Linux安装Nginx,附Nginx安装包

    环境:能联网的CentOS6.4 第一步: 下载安装包(用的是稳定版) 网址:http://nginx.org/en/download.html 第二步: 安装c++编译环境 切换到root用户命令行 ...

  5. 在linux环境下离线安装Nginx

    Nginx安装需要gcc-c++编译环境,另外还需要安装Nginx依赖包. 下载gcc-c++ 打开gcc-c++ rpm下载地址:https://pkgs.org/download/gcc-c++ ...

  6. linux源码编译安装nginx

    1.从nginx的官方网站下载nginx的安装源码包,要下载.gz格式的包才是linux安装包 网址http://nginx.org/download/ wget http://nginx.org/d ...

  7. linux操作系统重启后 解决nginx的pid消失问题

    linux操作系统重启后 解决nginx的pid消失问题 参考文章: (1)linux操作系统重启后 解决nginx的pid消失问题 (2)https://www.cnblogs.com/cyq632 ...

  8. Linux 环境安装 Node、nginx、docker、vsftpd、gitlab

    Linux 环境安装 centos7 # 更新yum yum update -y 0. 防火墙 firewalld 新入的JD云服务器,发现防火墙默认是关闭的. # 查看防火墙状态 systemctl ...

  9. Linux服务器下安装配置Nginx的教程

    这篇文章主要介绍了Linux服务器下安装配置Nginx服务器的教程,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下 Nginx("engine x")是一款 ...

最新文章

  1. 70个Python练手项目列表 预祝大家 快乐
  2. windows下的mongodb安装与配置
  3. iOS地图定位(Map)
  4. JavaScript实现regular-expression-matching正则表达式匹配算法(附完整源码)
  5. Python3实现打家劫舍问题
  6. leetcode189. 旋转数组
  7. Spring Boot分布式系统实践【扩展1】shiro+redis实现session共享、simplesession反序列化失败的问题定位及反思改进...
  8. 【需求工程】需求依赖矩阵
  9. 树状数组 / 二维树状数组
  10. 创建高质量Python工程(1)-如何设计结构清晰的目录结构(转)
  11. ReleaseDC和DeleteDC的区别
  12. Sql server 2008 Express 下载
  13. 自己收藏整理的一些操作系统资源
  14. CISP 考试资源分享
  15. 黑马程序员-微信小程序-原生框架——购物平台-分类页面
  16. 解决VirtualBox安装Ubuntu时界面显示不全问题
  17. 目前以太网主要采用什么连接计算机,目前以太网主要采用______连接计算机,计算机能够独享带宽...
  18. MINIO-Bucket数据迁移方案
  19. android 麦克风 动画,录音麦克风动画效果
  20. ibm服务器密码破解_IBM Integration Bus中的密码术操作

热门文章

  1. jsp和mysql乱码
  2. 三天打鱼两天晒网python程序设计_Python经常会遇到三天的笔试题:钓鱼和两天的晒网:,之,三天打鱼,两天晒网...
  3. gbrl参数_grbl-0.9运行参数配置说明
  4. pythonwindows32位_windows7__32位下安装python2.6.6
  5. 北师大版图形的旋转二教案_新北师大版八年级下册数学 《图形的旋转(2)》教案...
  6. java类型转换_Java类型转换
  7. Hibernate自动创建表
  8. 绝对零门槛,IDEA两步搭建好Java开发环境
  9. Go 的新关键字 any 是个啥
  10. G1垃圾收集器之RSet