使用google的openssl庫編譯nginx quic

1. 下載nginx quic版本

wget https://hg.nginx.org/nginx-quic/archive/quic.zip

獲取quic版本更新可以跟蹤https://quic.nginx.org

2. 下載boringssl

由於nginx quic版本使用了新的tls1.3協議,需要openssl支持quic,但目前的openssl版本沒有對應的支持,這裏使用google的boringssl。

git clone https://github.com/google/boringssl

3.其他依賴庫pcre,zlib請自行下載

4.編譯boringssl

mkdir -p /Users/cynicliu/Documents/code/quic/boringssl/build /Users/cynicliu/Documents/code/quic/boringssl/.openssl/lib /Users/cynicliu/Documents/code/quic/boringssl/.openssl/include

ln -sf /Users/cynicliu/Documents/code/quic/boringssl/include/openssl /Users/cynicliu/Documents/code/quic/boringssl/.openssl/include/openssl

touch /Users/cynicliu/Documents/code/quic/boringssl/.openssl/include/openssl/ssl.h

cmake -B/Users/cynicliu/Documents/code/quic/boringssl/build -H/Users/cynicliu/Documents/code/quic/boringssl

make -C /Users/cynicliu/Documents/code/quic/boringssl/build

cp /Users/cynicliu/Documents/code/quic/boringssl/build/crypto/libcrypto.a /Users/cynicliu/Documents/code/quic/boringssl/build/ssl/libssl.a /Users/cynicliu/Documents/code/quic/boringssl/.openssl/lib

5.configure nginx

./auto/configure --with-zlib=../zlib-1.2.11 --with-pcre=../pcre-8.44 --with-openssl=../boringssl/ --with-http_v3_module --with-http_ssl_module

這個地方可能會有個異常,

./auto/configure: error: certain modules require OpenSSL QUIC support.
You can either do not enable the modules, or install the OpenSSL library
into the system, or build the OpenSSL library statically from the source
with nginx by using --with-openssl=<path> option.

大家視情況而定,如果遇到異常將編譯好的庫libcrypto.a和libssl.a手動拷貝到/usr/local/lib目錄下即可

爲了避免nginx重新編譯openssl,執行下面動作更改ssl.h時間

touch ../boringssl/.openssl/include/openssl/ssl.h

6.make

#make

#./obj/nginx -V

nginx version: nginx/1.19.0
built by clang 11.0.0 (clang-1100.0.33.17)
built with OpenSSL 1.1.0 (compatible; BoringSSL) (running with BoringSSL)
TLS SNI support enabled

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章