使用编译好的OPENSSL库编译nginx

编译安装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/