前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何为 Nginx 添加一个模块?

如何为 Nginx 添加一个模块?

作者头像
用户1560186
发布2019-11-19 21:30:33
1.1K0
发布2019-11-19 21:30:33
举报
文章被收录于专栏:运维录运维录

开始之前

这篇文章发布于2013年,介绍如何为nginx添加模块,由于时间久远可能有些内容已经过时,不过"静态添加模块"方法仍然可以使用(从1.9.11版本开始支持load_module动态加载模块),文中的示例为nginx添加 stub_status模块,这个模块用于查看nginx的基本状态信息,对于运维人员来说很有用,建议掌握使用方法。

编译参数

使用 nginx -V 数可以查看 nginx的编译配置参数,记好这些配置参数接下来我们还用使用。

代码语言:javascript
复制
nginx -V
nginx version: nginx/1.2.3
built by gcc 4.1.2 20080704 (Red Hat 4.1.2-46)
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx \
--with-pcre=../pcre-8.12/ \
--with-openssl=/usr/local/openssl/ \
--with-http_ssl_module --with-http_flv_module \
--with-http_gzip_static_module \
--user=www --group=www

从输出的信息来看当前的 nginx 并没有 stub_status 模块信息(默认没有启用),所以需要重新编译nginx 并指定 stub_status模块。

重新编译

下载相同版本nginx 源码包,复制当前的nginx编译参数,在配置项末尾添加 stub_status 模块。

代码语言:javascript
复制
tar zxf nginx-1.2.3.tar.gz
tar zxf pcre-8.12.tar.gz
cd nginx-*/
./configure --prefix=/usr/local/nginx \
--with-pcre=../pcre-8.12/ \
--with-openssl=/usr/local/openssl/ \
--with-http_ssl_module --with-http_flv_module \
--with-http_gzip_static_module \
--user=www --group=www \
--with-http_stub_status_module  
make

注意: 我们只需要 make编译就好,并不需要 make install 步骤。

替换编译好的 nginx 二进制文件。

代码语言:javascript
复制
nginx -s stop
cp /usr/local/nginx/sbin/nginx /tmp/nginx.old
cp nginx-1.2.3/objs/nginx /usr/local/nginx/sbin/

使用模块

编译并替换后就可以使用 stub_status模块了,nginx配置文件添加如下配置项。

代码语言:javascript
复制
server
{
    #... 其它配置项省略

    location /nginx_status {
        stub_status on;
        access_log off;
        allow 127.0.0.1;
        deny all;
    }
}

启动nginx

代码语言:javascript
复制
nginx -t && nginx 
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

测试模块

代码语言:javascript
复制
curl http://localhost/nginx_status
Active connections: 1
server accepts handled requests
 97246 97246 97246
Reading: 0 Writing: 1 Waiting: 0

信息含义

代码语言:javascript
复制
active connections - 活跃的连接数量
server accepts handled requests - 收到 97246次连接 ,完成 97246次握手, 共处理 97246个请求
reading - 读取客户端的连接数。
writing - 响应数据到客户端的数量。
waiting - 开启 keep-alive 的情况下,这个值等于 active – (reading+writing)。

小结

最后来总结下文章中的知识点

  • nginx 添加模块的方法。
  • stub_status模块的使用方法。

如果不想编译nginx,可以尝试下 load_module动态加载模块。可以参考 Nginx 缓存服务器(下) 这篇文章 添加 ngx_cache_purge 模块部分。


本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维录 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 开始之前
  • 编译参数
  • 重新编译
  • 使用模块
  • 测试模块
  • 小结
  • 如果不想编译nginx,可以尝试下 load_module动态加载模块。可以参考 Nginx 缓存服务器(下) 这篇文章 添加 ngx_cache_purge 模块部分。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档