编译安装nginx
时,默认使用系统自带的OpenSSL
库,但其一般很老,不支持如TLSv1.3
等新功能。--with-openssl
参数虽然可以指定OpenSSL
路径,但只支持OpenSSL
的源代码,不支持已编译好的OpenSSL
。每回更新nginx
都要重新编译OpenSSL
肯定很麻烦,于是经过一番搜索后,找到了解决方案。
修改auto/lib/openssl/conf
大约第39
行至442
行,把
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/lib/libssl.a"
CORE_LIBS="$CORE_LIBS $OPENSSL/lib/libcrypto.a"
这样,我们就可以在编译安装nginx
时,手动指定已编译好的OpenSSL
了,比如--with-openssl=/usr/local/
。