Nginx 添加第三方模块
众所周知Nginx是分成一个个模块的,比如core模块,gzip模块,proxy模块,每个模块负责不同的功能,除了基本的模块,有些模块可以选择编译或不编译进Nginx。官网文档中的Modules reference部分列出了nginx源码包的所有模块。我们可以按照自己服务器的需要来定制出一个最适合自己的Nginx服务器。
除了Nginx官网源码包提供了各种模块,Nginx还有各种各样的第三方模块。官方文档NGINX 3rd Party Modules也列出了Nginx的很多第三方模块,除此官网列出的之外,还有很多很有用的模块也能在Github等网站上找到。
这些模块提供着各种各样意想不到的功能,灵活使用Nginx的第三方模块,可能会有非常大的意外收获。
本篇文章以GitHub上的nginx-module-vts作为例子,此模块可以监控Nginx虚拟主机流量以及状态,下面我们来看一下第三模块的安装以及简单的使用。
下载第三方模块
下载的模块存放在中
添加模块编译Nginx
查看当前Nginx编译参数
如果觉得每次操作Nginx都需要携带Nginx的PATH比较烦,你可以将Nginx的PATH添加到环境变量中
在 nginx.sh中添加如下内容
保存nginx.sh后使其配置生效
下面就可以在任意目录中执行nginx命令不用携带PATH了
添加模块编译
在获取的编译参数中再添加需要的模块
最终的配置如下
执行编译命令:,注意编译之后千万不能执行make install
编译完后,当前nginx源码目录下生成objs目录则说明编译成功
覆盖Nginx执行脚本
备份当前nginx执行脚本,命令:。如果拷贝出错,则将nginx进行杀掉再进行,命令: 或者
拷贝上一步骤编译后的新nginx脚本,命令:
在 下载执行 平滑升级Nginx
查看编译参数,命令:,如果编译参数中存在刚添加的模块,则说明编译成功
使用第三方模块
浏览器输入http://your_ip/status
思考:
这个监控Nginx服务器运行情况的模块。只要用户在浏览器输入,就可以访问监控页面。这样很不安全,因为任何人都可以访问这个页面。是否可以再添加一个授权模块呢?
个人能力有限如有错误欢迎指正。你有更好的解决方案或者建议欢迎一起交流讨论,如有疑问欢迎留言。
领取专属 10元无门槛券
私享最新 技术干货