Linux里面nginx显示Hello,Nginx得知——Hello World模
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模相关推荐
- 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 配置安装 ...
- 在Linux系统下载与安装Nginx
在Linux系统下载与安装Nginx 安装过程: 1.安装依赖 yum -y install gcc pcre-devel zlib-devel openssl opensll-devel 2.下载N ...
- (三)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - Nginx环境搭建
因为在网上发现系统性.严谨(特别是在安全方面)的Linux部署方面的参考文章很少,于是整理以下六篇Linux环境部署的系列性文章,其为本人在实践中,完整的搭建一个基于Linux系统上Centos+Ng ...
- Linux安装Nginx,附Nginx安装包
环境:能联网的CentOS6.4 第一步: 下载安装包(用的是稳定版) 网址:http://nginx.org/en/download.html 第二步: 安装c++编译环境 切换到root用户命令行 ...
- 在linux环境下离线安装Nginx
Nginx安装需要gcc-c++编译环境,另外还需要安装Nginx依赖包. 下载gcc-c++ 打开gcc-c++ rpm下载地址:https://pkgs.org/download/gcc-c++ ...
- linux源码编译安装nginx
1.从nginx的官方网站下载nginx的安装源码包,要下载.gz格式的包才是linux安装包 网址http://nginx.org/download/ wget http://nginx.org/d ...
- linux操作系统重启后 解决nginx的pid消失问题
linux操作系统重启后 解决nginx的pid消失问题 参考文章: (1)linux操作系统重启后 解决nginx的pid消失问题 (2)https://www.cnblogs.com/cyq632 ...
- Linux 环境安装 Node、nginx、docker、vsftpd、gitlab
Linux 环境安装 centos7 # 更新yum yum update -y 0. 防火墙 firewalld 新入的JD云服务器,发现防火墙默认是关闭的. # 查看防火墙状态 systemctl ...
- Linux服务器下安装配置Nginx的教程
这篇文章主要介绍了Linux服务器下安装配置Nginx服务器的教程,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下 Nginx("engine x")是一款 ...
最新文章
- 70个Python练手项目列表 预祝大家 快乐
- windows下的mongodb安装与配置
- iOS地图定位(Map)
- JavaScript实现regular-expression-matching正则表达式匹配算法(附完整源码)
- Python3实现打家劫舍问题
- leetcode189. 旋转数组
- Spring Boot分布式系统实践【扩展1】shiro+redis实现session共享、simplesession反序列化失败的问题定位及反思改进...
- 【需求工程】需求依赖矩阵
- 树状数组 / 二维树状数组
- 创建高质量Python工程(1)-如何设计结构清晰的目录结构(转)
- ReleaseDC和DeleteDC的区别
- Sql server 2008 Express 下载
- 自己收藏整理的一些操作系统资源
- CISP 考试资源分享
- 黑马程序员-微信小程序-原生框架——购物平台-分类页面
- 解决VirtualBox安装Ubuntu时界面显示不全问题
- 目前以太网主要采用什么连接计算机,目前以太网主要采用______连接计算机,计算机能够独享带宽...
- MINIO-Bucket数据迁移方案
- android 麦克风 动画,录音麦克风动画效果
- ibm服务器密码破解_IBM Integration Bus中的密码术操作
热门文章
- jsp和mysql乱码
- 三天打鱼两天晒网python程序设计_Python经常会遇到三天的笔试题:钓鱼和两天的晒网:,之,三天打鱼,两天晒网...
- gbrl参数_grbl-0.9运行参数配置说明
- pythonwindows32位_windows7__32位下安装python2.6.6
- 北师大版图形的旋转二教案_新北师大版八年级下册数学 《图形的旋转(2)》教案...
- java类型转换_Java类型转换
- Hibernate自动创建表
- 绝对零门槛,IDEA两步搭建好Java开发环境
- Go 的新关键字 any 是个啥
- G1垃圾收集器之RSet