首页 > 系统相关 >nginx最新版编译(1.26.0)

nginx最新版编译(1.26.0)

时间:2024-04-28 18:59:35浏览次数:28  
标签:http -- openssl module nginx 3.3 最新版 1.26

1.下载nginx源码包

https://nginx.org/en/download.html

 

2.下载编译nginx依赖包,可根据自己需求进行下载

#pcre(处理正则表达式)
http://downloads.sourceforge.net/project/pcre/pcre/8.45/pcre-8.45.zip

#zlib(Nginx 使用 zlib 来实现对 HTTP 响应内容的压缩,以提高网络传输效率和性能)
https://www.zlib.net/zlib-1.3.1.tar.gz

#openssl(提供 SSL/TLS 支持,保通过 HTTPS 协议进行的网络通信的安全性)
https://www.openssl.org/source/openssl-3.3.0.tar.gz

#headers-more-nginx-module(扩展了 Nginx 的头部处理功能)
https://github.com/openresty/headers-more-nginx-module/archive/refs/tags/v0.36.zip

#nginx-http-flv-module(用于实时视频流的传输和播放)
https://github.com/winshining/nginx-http-flv-module/archive/refs/tags/v1.2.11.zip

 

3.目录结构安排

[root@ks-devops base-new]# tree -L 2
.
|-- nginx      #用来作为nginx当前配置目录,并且存放对应解压后的依赖包
|   |-- headers-more-nginx-module-0.36
|   |-- nginx-1.26.0
|   |-- nginx-http-flv-module-1.2.11
|   |-- openssl-3.3.0
|   |-- pcre-8.45
|   `-- zlib-1.3.1
`-- nginx_depend_package    #用来存放nginx相关tar包,可忽略
    |-- headers-more-nginx-module-0.36.zip
    |-- nginx-1.26.0.tar.gz
    |-- nginx-http-flv-module-1.2.11.zip
    |-- nginx-http-flv-module-master.zip
    |-- openssl-3.3.0.tar.gz
    |-- pcre-8.45.zip
    `-- zlib-1.3.1.tar.gz

 

3.进入配置编译目录

cd base-new/nginx/nginx-1.26.0

 

4.执行配置

./configure --prefix=/data/service/nginx \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-http_ssl_module \
--with-http_mp4_module \
--with-stream \
--with-http_realip_module \
--with-http_v2_module \
--with-http_sub_module \
--with-pcre=../pcre-8.45 \
--with-zlib=../zlib-1.3.1 \
--with-openssl=../openssl-3.3.0 \
--add-module=../nginx-http-flv-module-1.2.11 \
--add-module=../headers-more-nginx-module-0.36

 

5.执行编译

make

 

6.编译报错解决

6.1 在make的时候产生报错,报错信息如下:

&& if [ -f Makefile ]; then make clean; fi \
&& ./config --prefix=/app/dockerfile/base-new/nginx/nginx-1.26.0/../openssl-3.3.0/.openssl no-shared no-threads  \
&& make \
&& make install_sw LIBDIR=lib
Can't locate IPC/Cmd.pm in @INC (@INC contains: /app/dockerfile/base-new/nginx/openssl-3.3.0/util/perl /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 . /app/dockerfile/base-new/nginx/openssl-3.3.0/external/perl/Text-Template-1.56/lib) at /app/dockerfile/base-new/nginx/openssl-3.3.0/util/perl/OpenSSL/config.pm line 19.
BEGIN failed--compilation aborted at /app/dockerfile/base-new/nginx/openssl-3.3.0/util/perl/OpenSSL/config.pm line 19.
Compilation failed in require at /app/dockerfile/base-new/nginx/openssl-3.3.0/Configure line 23.
BEGIN failed--compilation aborted at /app/dockerfile/base-new/nginx/openssl-3.3.0/Configure line 23.
make[1]: *** [../openssl-3.3.0/.openssl/include/openssl/ssl.h] 错误 2
make[1]: 离开目录“/app/dockerfile/base-new/nginx/nginx-1.26.0”
make: *** [build] 错误 2


6.2 错误说明:
错误表明在执行编译过程中缺少了 IPC::Cmd 模块,导致 Perl 脚本无法执行。

6.3 解决方法:
(1)安装 Perl 模块 IPC::Cmd:
yum install perl-IPC-Cmd

(2)如果成功安装,将会输出 "IPC::Cmd is installed"
perl -MIPC::Cmd -e 'print "IPC::Cmd is installed\n";'

(3)重新执行编译步骤
make

 

7.编译安装

make install

 

8.去configure --prefix=/data/service/nginx目录查看,可以看到如下目录结构,说明编译安装成功

[root@ks-devops service]# tree -L 3
.
|-- nginx
|   |-- conf
|   |   |-- fastcgi.conf
|   |   |-- fastcgi.conf.default
|   |   |-- fastcgi_params
|   |   |-- fastcgi_params.default
|   |   |-- koi-utf
|   |   |-- koi-win
|   |   |-- mime.types
|   |   |-- mime.types.default
|   |   |-- nginx.conf
|   |   |-- nginx.conf.default
|   |   |-- scgi_params
|   |   |-- scgi_params.default
|   |   |-- uwsgi_params
|   |   |-- uwsgi_params.default
|   |   `-- win-utf
|   |-- html
|   |   |-- 50x.html
|   |   `-- index.html
|   |-- logs
|   `-- sbin
|       `-- nginx

 

9.打包成tar.gz,可以放到其他的x86 linux机器上使用,也可以制作成nginx的docker镜像,但需要注意的是安装目录,普通安装需要安装在/data/service/下,容器内也是这个目录

cd /data/service/ && tar zcf nginxks-1.26.0.tar.gz nginx && mv nginxks-1.26.0.tar.gz /app/dockerfile/base-new/

 

10.参考文档

https://blog.csdn.net/x_iya/article/details/75220797

https://www.cnblogs.com/shuiche/p/14377328.html

 

标签:http,--,openssl,module,nginx,3.3,最新版,1.26
From: https://www.cnblogs.com/Leonardo-li/p/18164289

相关文章

  • Nginx反向代理的好处
    负载均衡:好处:负载均衡可以将传入的请求分发到多个后端服务器,从而提高系统的性能和可靠性,同时避免单个服务器过载。例子:假设有一个电子商务网站,每天有大量用户同时访问,使用Nginx的负载均衡功能可以将请求分发到多个商品服务器上,确保每个用户都能够快速访问到商品信息,而不会因......
  • [SUCTF 2019]Pythonginx
    [SUCTF2019]Pythonginx打开环境@app.route('/getUrl',methods=['GET','POST'])defgetUrl():url=request.args.get("url")host=parse.urlparse(url).hostname//urlparse对url中的各个组成部分进行分割ifhost=='suctf......
  • Nginx核心配置文件nginx.conf
    Nginx配置文件在目录/usr/local/nginx/conf下的nginx.conf,具体分三部分内容,如下:1、整体全局块:2、enents部分:上述图中配置表示每个workderprocess支持的最大连接数为1024。所以该部分主要影响nginx服务......
  • nginx 配置https,并适配微信小程序
    前言最近接手了个小程序项目,但是由于交接文档不完善,于昨天上午域名证书过期,导致无法调用后端服务,短暂(五分钟左右)影响了小程序的使用,也算是一个不大不小的事故吧[手动捂脸笑...]解决过程临时处理发现是证书过期导致的问题,立马就上阿里云申请新的证书,五分钟左右,证书就签发下来......
  • NGINX error_page
    背景网络架构中需要遇到apisix,想做个apisix访问出错的兜底方案nginx配置其中http://11.11.11.11:9080是apisix访问地址server{ listen80; server_namesfimplat; indexindex.htmlindex.htm; root/app/sfimplat_micro/web; #charsetkoi8-r; access_log......
  • Nginx 源码安装
     Nginx官网:https://nginx.org参考:Nginx配置常用参数梳理https://www.jb51.net/server/285538k8k.htmnginx配置参数详解https://blog.csdn.net/u013286192/article/details/136418472Nginx配置详解https://www.runoob.com/w3cnote/nginx-setup-intro.html查看nginx开启......
  • 通过设置nginx的client_max_body_size解决nginx+php上传大文件的问题
    通过设置nginx的client_max_body_size解决nginx+php上传大文件的问题用nginx来做webserver的时,上传大文件时需要特别注意client_max_body_size这个参数,否则会中断在nginx的请求中,在php中是无法记录到访问的. 一般上传大文件流程: 首先修改php.ini文件: 参数设置说明 fi......
  • nginx高级篇之location高级实战
    nginxlocation高级实战location是nginx的核心重要功能,可以设置网站的访问路径,一个webserver会有多个路径,那么location就得设置多个。Nginx的locaiton作用是根据用户请求的URI不同,来执行不同的应用。针对用户请求的网站URL进行匹配,匹配成功后进行对应的操作。1.语法介绍Sy......
  • nginx高性能负载均衡集群
    高性能负载均衡集群一、集群是什么简单地说,集群就是指一组(若干个)相互独立的计算机,利用高速通信网络组成的一个较大的计算机服务系统,每个集群节点(即集群中的每台计算机)都是运行各自服务的独立服务器。这些服务器之间可以彼此通信,协同向用户提供应用程序,系统资源和数据,并以单一......
  • nginx高级篇之基于IP的访问限制
    一、基于IP的访问限制官网http://nginx.org/en/docs/http/ngx_http_access_module.html1.配置语法句法:allowaddress|CIDR|unix:|all;默认:—语境:http,server,location,limit_except允许访问指定的网络或地址。如果指定了特殊值unix:(1.5.1),则允许访......