nginx-1.24编译安装

1.创建压缩包存放路径

复制代码
[root@localhost /]# mkdir -p /apps/scripts
[root@localhost /]# cd apps/scripts/

2.上传所需文件

3.初始化环境

复制代码
[root@localhost scripts]# yum install -y yum-utils device-mapper-persistent-data lvm2 wget net-tools nfs-utils lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl curl-devel unzip sudo libaio-devel wget vim ncurses-devel autoconf automake zlib-devel  python-devel epel-release openssh-server socat  ipvsadm conntrack telnet ipvsadm vim

4.压缩包解压

复制代码
[root@localhost scripts]# tar -zxf nginx-1.24.0.tar.gz 
[root@localhost scripts]# tar -zxf nginx-module-vts-0.2.2.tar.gz 
[root@localhost scripts]# tar -zxf ngx_brotli.tgz 
[root@localhost scripts]# tar -zxf openssl-1.1.1w.tar.gz 
[root@localhost scripts]# tar -zxf pcre-8.45.tar.gz 
[root@localhost scripts]# tar -zxf zlib-1.3.tar.gz 
[root@localhost scripts]# unzip nginx-sticky-module-ng-08a395c66e42.zip 
[root@localhost scripts]# unzip ngx_http_proxy_connect_module-master.zip

5.检测编译环境 加模块

复制代码
[root@localhost scripts]# cd /apps/scripts/nginx-1.24.0
[root@localhost nginx-1.24.0]# ./configure --prefix=/apps/nginx --modules-path=/apps/nginx/modules --with-compat --with-stream --with-stream_ssl_module --with-stream_realip_module --with-stream_ssl_preread_module --with-threads --with-file-aio --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_auth_request_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_slice_module --with-http_stub_status_module --with-zlib=/apps/scripts/zlib-1.3  --with-pcre=/apps/scripts/pcre-8.45  --with-openssl=/apps/scripts/openssl-1.1.1w  --add-module=/apps/scripts/nginx-goodies-nginx-sticky-module-ng-08a395c66e42  --add-module=/apps/scripts/nginx-module-vts-0.2.2 --add-module=/apps/scripts/ngx_brotli  

6.编译

复制代码
[root@localhost nginx-1.24.0]# make

出现报错,详细如下:

复制代码
/apps/scripts/nginx-goodies-nginx-sticky-module-ng-08a395c66e42/ngx_http_sticky_module.c: In function 'ngx_http_init_sticky_peer':
/apps/scripts/nginx-goodies-nginx-sticky-module-ng-08a395c66e42/ngx_http_sticky_module.c:207:54: error: 'ngx_http_headers_in_t' has no member named 'cookies'
  if (ngx_http_parse_multi_header_lines(&r->headers_in.cookies, &iphp->sticky_conf->cookie_name, &route) != NGX_DECLINED) {
                                                      ^
/apps/scripts/nginx-goodies-nginx-sticky-module-ng-08a395c66e42/ngx_http_sticky_module.c:207:2: error: passing argument 2 of 'ngx_http_parse_multi_header_lines' from incompatible pointer type [-Werror]
  if (ngx_http_parse_multi_header_lines(&r->headers_in.cookies, &iphp->sticky_conf->cookie_name, &route) != NGX_DECLINED) {
  ^
In file included from /apps/scripts/nginx-goodies-nginx-sticky-module-ng-08a395c66e42/ngx_http_sticky_module.c:9:0:
src/http/ngx_http.h:106:18: note: expected 'struct ngx_table_elt_t *' but argument is of type 'struct ngx_str_t *'
 ngx_table_elt_t *ngx_http_parse_multi_header_lines(ngx_http_request_t *r,
                  ^
/apps/scripts/nginx-goodies-nginx-sticky-module-ng-08a395c66e42/ngx_http_sticky_module.c:207:2: error: too few arguments to function 'ngx_http_parse_multi_header_lines'
  if (ngx_http_parse_multi_header_lines(&r->headers_in.cookies, &iphp->sticky_conf->cookie_name, &route) != NGX_DECLINED) {
  ^
In file included from /apps/scripts/nginx-goodies-nginx-sticky-module-ng-08a395c66e42/ngx_http_sticky_module.c:9:0:
src/http/ngx_http.h:106:18: note: declared here
 ngx_table_elt_t *ngx_http_parse_multi_header_lines(ngx_http_request_t *r,
                  ^
cc1: all warnings being treated as errors
make[1]: *** [objs/addon/nginx-goodies-nginx-sticky-module-ng-08a395c66e42/ngx_http_sticky_module.o] Error 1
make[1]: Leaving directory `/apps/scripts/nginx-1.24.0'
make: *** [build] Error 2

7.报错处理

查询相关资料,该报错可能是因为nginx版本与ngx_http_proxy_connect_module-master中patch版本不符导致。以下为版本对应图:

参考上述对应图,部署nginx-1.24需指定为proxy_connect_rewrite_102101.patch

安装patch命令

root@localhost nginx-1.24.0\]# yum -y install patch.x86_64 \[root@localhost nginx-1.24.0\]# patch -p1 \< /apps/scripts/ngx_http_proxy_connect_module-master/patch/proxy_connect_rewrite_102101.patch ![在这里插入图片描述](https://file.jishuzhan.net/article/1765348805890281473/ded4c811ca2cf3263c26e2b6c1d36092.webp) 再次:检测编译环境 加模块及编译 依旧报错: /apps/scripts/nginx-goodies-nginx-sticky-module-ng-08a395c66e42/ngx_http_sticky_module.c: In function 'ngx_http_init_sticky_peer': /apps/scripts/nginx-goodies-nginx-sticky-module-ng-08a395c66e42/ngx_http_sticky_module.c:207:54: error: 'ngx_http_headers_in_t' has no member named 'cookies' if (ngx_http_parse_multi_header_lines(&r->headers_in.cookies, &iphp->sticky_conf->cookie_name, &route) != NGX_DECLINED) { ^ /apps/scripts/nginx-goodies-nginx-sticky-module-ng-08a395c66e42/ngx_http_sticky_module.c:207:2: error: passing argument 2 of 'ngx_http_parse_multi_header_lines' from incompatible pointer type [-Werror] if (ngx_http_parse_multi_header_lines(&r->headers_in.cookies, &iphp->sticky_conf->cookie_name, &route) != NGX_DECLINED) { ^ In file included from /apps/scripts/nginx-goodies-nginx-sticky-module-ng-08a395c66e42/ngx_http_sticky_module.c:9:0: src/http/ngx_http.h:106:18: note: expected 'struct ngx_table_elt_t *' but argument is of type 'struct ngx_str_t *' ngx_table_elt_t *ngx_http_parse_multi_header_lines(ngx_http_request_t *r, ^ /apps/scripts/nginx-goodies-nginx-sticky-module-ng-08a395c66e42/ngx_http_sticky_module.c:207:2: error: too few arguments to function 'ngx_http_parse_multi_header_lines' if (ngx_http_parse_multi_header_lines(&r->headers_in.cookies, &iphp->sticky_conf->cookie_name, &route) != NGX_DECLINED) { ^ In file included from /apps/scripts/nginx-goodies-nginx-sticky-module-ng-08a395c66e42/ngx_http_sticky_module.c:9:0: src/http/ngx_http.h:106:18: note: declared here ngx_table_elt_t *ngx_http_parse_multi_header_lines(ngx_http_request_t *r, ^ cc1: all warnings being treated as errors make[1]: *** [objs/addon/nginx-goodies-nginx-sticky-module-ng-08a395c66e42/ngx_http_sticky_module.o] Error 1 make[1]: Leaving directory `/apps/scripts/nginx-1.24.0' make: *** [build] Error 2 ![在这里插入图片描述](https://file.jishuzhan.net/article/1765348805890281473/952502da7423ad2d2839c7e5190fe2ee.webp) 继续查询相关资料,有一种思路为替换配置文件,尝试一下是否可行 [root@localhost nginx-1.24.0]# cd /apps/scripts/nginx-goodies-nginx-sticky-module-ng-08a395c66e42/ [root@localhost nginx-goodies-nginx-sticky-module-ng-08a395c66e42]# sed -i "s/ngx_http_parse_multi_header_lines.*/ngx_http_parse_multi_header_lines(r, r->headers_in.cookie, \&iphp->sticky_conf->cookie_name, \&route) != NULL){/g" ngx_http_sticky_module.c 再次:检测编译环境 加模块及编译 ![在这里插入图片描述](https://file.jishuzhan.net/article/1765348805890281473/553da83c0d3977c1a9e7e8347f1aca5e.webp) 方法可行,没有报错了 8.安装 [root@localhost nginx-1.24.0]# make install ![在这里插入图片描述](https://file.jishuzhan.net/article/1765348805890281473/762fcf2a4ed85b514811e0a3d76e1fa3.webp) 9.验证 ![在这里插入图片描述](https://file.jishuzhan.net/article/1765348805890281473/9b7ef1e1eeb09021cd23b839193e03b5.webp)

相关推荐
码里法20 分钟前
centos安装nginx并配置https完整版
nginx·https·centos
zly350028 分钟前
linux查看正在运行的nginx的当前工作目录(webroot)
linux·运维·nginx
QT 小鲜肉33 分钟前
【Linux命令大全】001.文件管理之file命令(实操篇)
linux·运维·前端·网络·chrome·笔记
呼啦啦呼啦啦啦啦啦啦42 分钟前
docker制作镜像的两种方式(保姆级教学)
运维·docker·容器
问道飞鱼1 小时前
【Linux知识】Linux 虚拟机磁盘扩缩容操作指南(按文件系统分类)
linux·运维·服务器·磁盘扩缩容
风雨飘逸2 小时前
【shell&bash进阶系列】(二十一)向脚本传递参数(shift和getopts)
linux·运维·服务器·经验分享·bash
zly35002 小时前
删除文件(rm 命令 删除目录)
linux·运维·服务器
fbllfbll2 小时前
Alpine下部署Nginx+MAZANOKE在线批量压缩图片
服务器·nginx·pve·alpine·lxc容器·在线压缩图片·mazanoke
曹天骄2 小时前
OSS 传输加速 与 CDN 的区别
运维·阿里云·https
qq_455760853 小时前
docker - 网络
运维·docker·容器