给已安装的nginx添加新模块
2021/6/23 7:28:11
本文主要是介绍给已安装的nginx添加新模块,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
有个需求的实现需要通过nginx的ngx_http_realip_module模块,但是这个模块我在安装nginx的时候并没有加上,只有重新编译加上去。我看了以下网上各种博文,基本上就是你抄我,我抄你,有以下这些步骤
# 1. 下载模块的源码包,假设把模块源码放在/data/software下 # 2. 解压与正在跑的nginx同版本的源码包 # 3. 查看正在跑的nginx编译安装了哪些模块 configure arguments段 [root@test-1 nginx-1.20.1]# nginx -V nginx version: nginx/1.20.1 built by gcc 9.3.1 20200408 (Red Hat 9.3.1-2) (GCC) built with OpenSSL 1.0.2k-fips 26 Jan 2017 TLS SNI support enabled configure arguments: --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-stream --user=nginx # 4. 使用--add-module加上新的模块,重新初始化 ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-stream --user=nginx --add-mode=/data/software/xxxx # 5. 编译,不要make install make # 6. 替换nginx二进制文件 cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak cp objs/nginx /usr/local/nginx/sbin/nginx # 7. 重启 /usr/local/nginx/sbin/nginx -s reload
我觉得这几个步骤有部分还是有些问题。
比如:
- 第一步下载模块源码,nginx模块并非都是nginx官方开发,源码没有一个统一的路径,找模块源码费时费力。
- 第四步使用--add-module加上模块源码位置,再使用make编译的时候,我报错了
- 第六步替换是不能直接替换的,因为nginx还在运行,直接替换会报错。大多数博客怕是抄完了都没去试一下。
cp: cannot create regular file ‘/usr/local/nginx/sbin/nginx’: Text file busy
所以我也不找源码了,直接使用--with方式,这种方式就是把模块编译进nginx的二进制文件。
我的步骤如下
# 1. 解压与正在跑的nginx同版本的源码包 # 2. 查看正在跑的nginx编译安装了哪些模块 configure arguments段 [root@test-1 nginx-1.20.1]# nginx -V nginx version: nginx/1.20.1 built by gcc 9.3.1 20200408 (Red Hat 9.3.1-2) (GCC) built with OpenSSL 1.0.2k-fips 26 Jan 2017 TLS SNI support enabled configure arguments: --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-stream --user=nginx # 3. 重新初始化 ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-stream --user=nginx --with-http_realip_module # 4. 编译 make # 5. 替换二进制文件并重启nginx cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak /usr/local/nginx/sbin/nginx -s stop \cp objs/nginx /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx
我发现这样做同样可以使用新的模块。如果这样做有什么问题或隐患,还请在评论中指正,谢谢。
这篇关于给已安装的nginx添加新模块的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-29Nginx发布学习:从入门到实践的简单教程
- 2024-10-28Nginx发布:新手入门教程
- 2024-10-21nginx 怎么设置文件上传最大20M限制-icode9专业技术文章分享
- 2024-10-17关闭 nginx的命令是什么?-icode9专业技术文章分享
- 2024-09-17Nginx实用篇:实现负载均衡、限流与动静分离
- 2024-08-21宝塔nginx新增8022端口方法步骤-icode9专业技术文章分享
- 2024-08-21nginx配置,让ws升级为wss访问的方法步骤-icode9专业技术文章分享
- 2024-08-15nginx ws代理配置方法步骤-icode9专业技术文章分享
- 2024-08-14nginx 让访问带有/relid的地址返回404 ,例子 /relid-x-0.36-y-131.html-icode9专业技术文章分享
- 2024-08-14nginx 判断地址有/statics/的路径,指向到/home/html/statics/目录-icode9专业技术文章分享