1、新建工作目录并进入

mkdir workspace
cd workspace

2、下载源码

#下载源代码
wget https://nginx.org/download/nginx-1.18.0.tar.gz
wget https://zlib.net/current/zlib.tar.gz
wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz
wget https://zenlayer.dl.sourceforge.net/project/pcre/pcre/8.45/pcre-8.45.tar.gz?viasf=1

#解压源代码
tar zxvf nginx-1.18.0.tar.gz
tar zxvf zlib.tar.gz
tar zxvf openssl-1.1.1w.tar.gz
tar zxvf pcre-8.45.tar.gz

3、配置编译参数

./configure \
    --prefix=. \
    --sbin-path=nginx \
    --conf-path=conf/nginx.conf \
    --pid-path=logs/nginx.pid \
    --http-log-path=logs/access.log \
    --error-log-path=logs/error.log \
    --http-client-body-temp-path=temp/client_body_temp \
    --http-proxy-temp-path=temp/proxy_temp \
    --http-fastcgi-temp-path=temp/fastcgi_temp \
    --http-scgi-temp-path=temp/scgi_temp \
    --http-uwsgi-temp-path=temp/uwsgi_temp \
    --with-pcre=../pcre-8.45 \
    --with-zlib=../zlib-1.3.1 \
    --with-openssl=../openssl-1.1.1w \
    --with-http_ssl_module \
    --with-http_v2_module \
    --with-threads \
    --with-file-aio \
    --with-http_realip_module \
    --with-http_stub_status_module \
    --with-stream

不要使用--with-cc-opt="-static"--with-ld-opt="-static"参数进行静态编译,否则nginx编译好后,哪怕不运行任何业务,CPU的占用也会达到100%(在FT2000上测试的结果)。

4、编译并安装

make -j$(nproc)
make install # 由于--prefix指定的是“.”(当前目录),因此可以不用执行make install操作,编译好的nginx位于objs中

5、检查nginx并执行打包

  1. 使用ldd nginx检查nginx是否为纯静态执行文件;
  2. 新建文件夹nginx-1.18.0,并将nginx拷贝到文件夹中;
  3. 将源代码目录下的conf、contrib、html、man拷贝到文件夹nginx-1.18.0中;
  4. 新建logs和temp两个目录,注意权限问题;
  5. 使用tar -cf nginx-1.18.0_aarch64.tar nginx-1.18.0完成打包,之后就可以通过nginx-1.18.0_aarch64.tar进行分发;