首页 > 系统相关 >为 centos7 编译 nginx

为 centos7 编译 nginx

时间:2022-12-04 09:11:36浏览次数:42  
标签:http temp 编译 -- module centos7 nginx path

通过 yum 安装的 nginx 版本多数是 1.22.x,已经被暴露出有一个高危的安全漏洞(CVE-2022-3638)。需要自行编译安装最新的 1.23.2 以修复这个安全问题。

源码好下载,编译命令也简单,configure, make 就能行。难在如何配置 configure 参数。我们希望编译出来的 nginx ,替换掉默认的 nginx 可执行程序(位于 /usr/sbin/ 下)就能简单地完成升级,而不用再改一堆复杂配置。默认的 nginx 是通过系统服务启动的,也不想做改动,所以,最好能知道默认的 nginx 编译时使用了哪些参数,基于它进行编译就没问题。

首先当然是上网学习了。好吧,学习效果一般,都是教你怎么把 nginx 安装到 /usr/local/ 下,再修改一堆复杂的配置,做法不够简单,可能还会有一些问题(比如说 user, group 就不是 nginx)。

实际上,只要先通过 yum 安装了 nginx, 再输入命令 nginx -V, 就可以直接看到当时编译时用的参数。用它用为编译的参数不就行了么。

这是编译参数:

./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie' --add-module=headers-more-nginx-module

后面的 --add-module=headers-more-nginx-module 是新增额外要编译的模块,不用的话也可以去掉。

成功后直接运行 make.

然后把编译后的可执行文件替换掉原文件。再重启服务即可。

cp objs/nginx /usr/sbin/
systemctl restart nginx

这时候再用 nginx -V 检查版本号已经升级了。

够简单吧。

标签:http,temp,编译,--,module,centos7,nginx,path
From: https://www.cnblogs.com/qkhh/p/16949397.html

相关文章

  • 推荐一款采用 .NET 编写的 反编译到源码工具 Reko
    今天给大家介绍的是一款名叫Reko的开源反编译工具,该工具采用C#开发,广大研究人员可利用Reko来对机器码进行反编译处理。我们知道.NET7有了NativeAOT的支持,采用NativeAOT......
  • Maven 动态切换多 profiles 编译环境
    pom.xml配置<!--Maven动态切换多profiles编译环境--><profiles><!--开发环境--><profile><id>dev</id><!--默认激活--><activation......
  • Centos7.9编译php 5.3 make时出现错误
    问题1:make:***[libphp5.la]Error1解决:yuminstalllibtool-ltdl-devel问题2:/bin/ld:ext/standard/dns.o:undefinedreferencetosymbol'__dn_sk......
  • centos7.9重启后,主机名会变为IP地址
    现象:centos7.9重启后,主机名会变为IP地址当关闭DHCP功能,则主机名修改生效,否则重启后,主机名依旧变为图示的IP地址   解决方法:经过排查,由/etc/sysconfig......
  • CentOS7 安装 mariadb
    MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此......
  • CentOS7 编译安装最新的Linux Kernel 6.0 rc3
    哪个男孩不想手动编译一份自己的内核呢?安装编译环境CentOS7安装必要的包yumgroupinstall"DevelopmentTools"-y&&yuminstallopenssl-devel-y&&yuminstallrpm-buil......
  • CentOS7 加阿里yum源
    CentOS系统更换软件安装源第一步:备份原镜像文件,以免出错后可以恢复。cp-r/etc/yum.repos.d//etc/yum.repos.d.bak/第二步:下载新的CentOS-Base.repo到/etc/yum.repos.......
  • linux内核编译
    ubuntu22.4linux6.0内核编译sudoaptinstallmakesudoaptinstallgccsudoaptinstalllibncurses-devsudoaptinstallflexsudoaptinstallbisonsudoaptinsta......
  • IL Spy反编译小工具下载
    关注微信公众号【工控羊】或者微信号【gksheep】,微信公众号后台输入数字编号【1001】即可获取下载链接。......
  • 在超算/计算集群中编译和安装OpenFOAM-5.x
    安装的准备现在OpenFOAM已经更新到了第十版,之所以安装5版本,是因为我个人现在做CFD-DEM耦合的工作,CFDEM耦合软件支持的OpenFOAM就是5.x版本。不管是哪一个版本,安装过程和准......