一、环境信息
ubuntu 20.04
编译环境 gcc make perl(编译 openssl 须要)
二、软件信息
nginx-1.22.0 openssl-1.1.1q pcre2-10.40 zlib-1.2.12
三、编译装置
-
openssl 编译生成动态链接文件
生成 make 文件
root@26be474b2382:/data/build/openssl-1.1.1q# ./config --prefix=/data/build/openssl-1.1.1q --openssldir=/data/build/openssl-1.1.1q
执行 make 生成动态链接文件 (-j 指定线程数)
root@26be474b2382:/data/build/openssl-1.1.1q# make -j 8
执行胜利,生成 libssl.a libcrypto.a 链接文件 即可 用于 nginx 开启 ssl 模块
不用执行 make install 不做装置,最初要删除
-
编译装置 nginx
创立容许用户和组 useradd -M -s /sbin/nologin nginx (不须要家目录,不登录)
root@26be474b2382:/data/build/nginx-1.22.0# useradd -M -s /sbin/nologin nginx
批改 nginx-1.22.0/auto/lib/openssl/conf 文件
将
CORE_INCS="$CORE_INCS $OPENSSL/.openssl/include" CORE_DEPS="$CORE_DEPS $OPENSSL/.openssl/include/openssl/ssl.h" CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libssl.a" CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libcrypto.a"
替换为
CORE_INCS="$CORE_INCS $OPENSSL/include" CORE_DEPS="$CORE_DEPS $OPENSSL/include/openssl/ssl.h" CORE_LIBS="$CORE_LIBS $OPENSSL/libssl.a" CORE_LIBS="$CORE_LIBS $OPENSSL/libcrypto.a"
编译命令
配置软件指标地位及开启模块,具体参数参考 nginx 文档 https://nginx.org/en/docs/con…
root@26be474b2382:/data/build/nginx-1.22.0# ./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/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-pcre=/data/build/pcre2-10.40 --with-openssl=/data/build/openssl-1.1.1q --with-zlib=/data/build/zlib-1.2.12
执行胜利
执行 make 生成 nginx 软件及配置文件
root@26be474b2382:/data/build/nginx-1.22.0# make -j 8
执行 make install 将 nginx 软件及配置文件 装置到指定地位
root@26be474b2382:/data/build/nginx-1.22.0# make install
创立指定的缓存目录 /var/cache/nginx 将其授予 nginx:nginx 用户
root@26be474b2382:/data/build/nginx-1.22.0# mkdir /var/cache/nginx root@26be474b2382:/data/build/nginx-1.22.0# chown nginx:nginx /var/cache/nginx
四、验证 nginx 装置状况
root@26be474b2382:~# nginx -t
至此 nginx 装置结束,/data/build 文件夹 能够删除