我想使用 HTTP/2 并充分利用其功能。ALPN 捆绑在 OpenSSL 1.0.2 中,但 NGINX 似乎不使用它。似乎 OpenSSL 已经是 1.0.2l,我将 nginx 升级到 1.13.6,但它仍然使用 OpenSSL 1.0.1t。
# openssl version -v
OpenSSL 1.0.2l 25 May 2017
nginx -V
nginx version: nginx/1.13.6
built by gcc 4.9.2 (Debian 4.9.2-10)
built with OpenSSL 1.0.1t 3 May 2016 (running with OpenSSL 1.0.2l 25 May 2017)
TLS SNI support enabled
任何帮助 NGINX 使用 OpenSSL 1.0.2 或如何启用 ALPN 的帮助都将不胜感激。
答案1
我遇到了同样的问题。这是我的解决方案:
- 获取 nginx 当前版本
nginx -V
- 您获得了一些信息:
nginx 版本:nginx/1.14.2 由 gcc 4.9.2(Debian 4.9.2-10+deb8u1)构建,使用 OpenSSL 1.0.1t 构建,2016 年 5 月 3 日(使用 OpenSSL 1.0.2l 运行,2017 年 5 月 25 日)启用 TLS SNI 支持配置参数:--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-cc-opt='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -Wl,--as-needed -pie'
- 接下来让我们为下一步操作创建一些目录:
mkdir $HOME/nginx_http2
$HOME/nginx_http2 目录
- 现在我们必须下载相同版本的 Nginx。对我来说是 1.14.2
- 解压档案
tar xf nginx-1.14.2.tar.gz
- 转至解压文件夹
目录 nginx-1.14.2
- 现在您应该从“nginx -V”命令复制文本 - “configure parameters:”之后的所有文本并运行命令:
./configure <在此处输入复制的文本>
它看上去会像这样:
./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-cc-opt='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -Wl,--as-needed -pie'
- 现在我们必须编译 nginx。请确保在运行这些命令时没有出现任何错误。如果出现任何错误,请不要调用下一个命令并尝试修复错误
制作
进行安装
/etc/init.d/nginx 重启
现在让我们检查一下我们的版本:
nginx -V
nginx version: nginx/1.14.2
built by gcc 4.9.2 (Debian 4.9.2-10+deb8u2)
built with OpenSSL 1.0.2l 25 May 2017
TLS SNI support enabled
...
现在让我们检查一下 HTTP2 支持:
并检查您的域名你应该看到这个(截图)