标签: http2

在 nginx 反向代理和后端网络服务器之间使用 HTTP/2.0

我在能够执行 HTTP/2.0 的后端网络服务器前使用 nginx 作为反向 ssl 代理。

我注意到 nginx 通过 HTTP/1.1 而不是 HTTP/2.0 代理对后端服务器的请求。是否可以告诉 nginx 使用未加密的 HTTP/2.0 连接?这会提高性能吗?

nginx reverse-proxy http2

33
推荐指数
3
解决办法
4万
查看次数

Debian jessie nginx with openssl 1.0.2 使用 ALPN 而不是 NPN

我在我的服务器上运行 debian jessie,最近升级到支持 http/2 的新 nginx web 服务器(nginx 1.10)。与今天一样,它运行良好,并且网络服务器正在使用 http2 协议提供内容。

我读过,chrome 正在放弃 NPN 支持,并且只在 2016 年 5 月 15 日之后才允许使用 ALPN。ALPN 是扩展,需要安装 openssl 1.0.2,但在 debian jessie 上只有 openssl 1.0.1(在 debian backports 和另一个存储库上,这个 debian 没有 openssl 1.0.2 版本)。

还有一个问题——我已经从 SPDY 升级到了 http2,几天后,我将不得不关闭 http2 并且无法使用 SPDY,因为这个版本的 nignx 只有 http2。我也读过,这个版本的 debian 将坚持使用 openssl 1.0.1,只有 debian stretch 会有 openssl 1.0.2。但是到发布日期快一年了,chrome 很快就会停止支持,所以我不想失去 http2 协议的好处。

是否有任何解决方案,如何在此系统上安装 openssl 1.0.2,而无需构建自己的构建(糟糕的维护)或等待向后移植存储库拥有它?如果必须手动链接和维护其中之一,我也不希望我的系统上有两个版本的 openssl。

谢谢你的帮助。

debian nginx openssl debian-jessie http2

14
推荐指数
2
解决办法
2万
查看次数

如何在不断开 SSL 连接的情况下优雅地重新启动 Apache?

我们正在尝试使用如下命令优雅地重新加载 Apache:

apache2ctl -k graceful
Run Code Online (Sandbox Code Playgroud)

这对 HTTP 用户来说按预期工作,并且重新加载 Apache 配置而不会影响网站用户。

但是,我们发现通过 HTTPS 访问服务器的用户在正常重新加载期间断开连接。

如何在不影响 SSL 连接的情况下优雅地重新加载 Apache?

如果有帮助,我们在 Apache 2.4.20 上使用 HTTP 2。

ssl apache-2.4 http2

11
推荐指数
1
解决办法
1602
查看次数

nginx 与 nginx 通信使用 http2 没有 ssl

我有 nginx-proxy 和 nginx-server docker 容器。

client browser < > nginx-proxy 是 http2 和 443 通过 proxy_pass。

nginx-proxy < > nginx-server 是 http1,我想将它移动到 http2 但没有 SSL - 因为它们都在同一台服务器上,我看不到加密流量的好处。

我阅读了 nginx 文档,他们说它支持没有 ssl 的 http2。所以我80 http2;在 nginx-server vhost 中添加了 listen 指令。

但是,浏览器会下载包含以下内容的文件,而不是显示网站:

0000 1204 0000 0000 0000 0300 0000 8000
0400 0000 0000 0500 ffff ff00 0004 0800
0000 0000 7fff 0000 0000 0807 0000 0000
0000 0000 0000 0000 01
Run Code Online (Sandbox Code Playgroud)

它看起来非常像这个问题,但我的不是browser <> nginx问题而是nginx …

nginx http2

11
推荐指数
1
解决办法
6931
查看次数

为什么我的服务器不支持 ALPN?

我目前正在使用 NGINX 1.11.9 和 openssl 1.0.2g 运行 Ubuntu 16.04.1 LTS 服务器。

根据我阅读的所有内容,这些版本应该支持 ALPN,但是当我在KeyCDN 的 HTTP/2 测试工具上运行测试时,我得到“不支持 ALPN”keycdn 测试报告的屏幕截图

当我执行时echo | openssl s_client -alpn h2 -connect example.com:443 | grep ALPN,我得到:

depth=3 C = SE, O = AddTrust AB, OU = AddTrust External TTP Network, CN = AddTrust External CA Root
verify return:1
depth=2 C = GB, ST = Greater Manchester, L = Salford, O = COMODO CA Limited, CN = COMODO RSA Certification Authority
verify return:1
depth=1 C …
Run Code Online (Sandbox Code Playgroud)

ssl nginx openssl http2 ubuntu-16.04

11
推荐指数
1
解决办法
2万
查看次数

Windows Server 2012 R2 IIS 10 / HTTP/2

我们目前正在使用 IIS 8.5 为我们的 Web 服务器运行 Windows Server 2012 R2。是否可以将其升级到 IIS 10 for HTTP/2 或在我们当前的安装中以其他方式启用 HTTP/2?

谢谢,马特。

iis http windows-server-2012-r2 iis-8.5 http2

9
推荐指数
1
解决办法
1万
查看次数

在 HTTP 1 服务器前面设置 HTTP 2 反向代理是否值得?

假设我在 IIS 前将 Nginx 设置为反向代理,并在 Nginx 上为浏览器启用 HTTP/2 支持。

我会看到任何好处吗?

reverse-proxy http2

7
推荐指数
1
解决办法
5965
查看次数

在 AWS ALB 上终止 HTTP/2

AWS Application Load Balancer ALB 支持 HTTP/2,有人会认为我们可以切换到这些并立即享受 HTTP/2 的好处。

有没有办法在 ALB 上终止 HTTP/2,这样 Web 服务器就不需要配置为支持 HTTP/2?

amazon-web-services http2

7
推荐指数
1
解决办法
1万
查看次数

我们应该使用 Apache 的 HTTP2 吗?

我想将 HTTP2 与 Apache 2.4.16(可能需要升级到 2.4.17)一起使用,并在官方 Apache 页面上偶然发现了此评论。

警告

这个模块是实验性的。相对于其他标准模块,它的行为、指令和默认值在不同版本之间会发生更多变化。鼓励用户查阅“CHANGES”文件以获取潜在更新。

另一方面,许多其他人正在制作有关如何启用它的教程。那么使用它安全还是我们应该等待?

另外,我们可以将 HTTP2 与反向代理结合使用吗?

reverse-proxy apache-2.4 http2

7
推荐指数
1
解决办法
3626
查看次数

Nginx HTTP2 IOS 11 不工作

我的 NGINX 服务器上的 HTTP2 协议有问题,这是我的配置

listen 443 ssl http2;
server_name adomain.com;
root /var/www/project;

limit_req   zone=one  burst=60 nodelay;

add_header Strict-Transport-Security "max-age=2592000; includeSubdomains;" always;
ssl_certificate     /etc/letsencrypt/live/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/privkey.pem;
ssl_protocols   TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
ssl_prefer_server_ciphers on;
ssl_session_cache   shared:SSL:10m;
ssl_session_timeout 10m;
ssl_dhparam /etc/nginx/ssl/dhparam.pem;

resolver 8.8.8.8;
ssl_stapling on;
ssl_stapling_verify on;

keepalive_timeout   70;
Run Code Online (Sandbox Code Playgroud)

我在我的 iOS 设备(safari 11)上看不到错误,很奇怪网页是一个 SPA(angular),应用程序向 API 发出请求,应用程序通过 HTTP2 加载,但是当应用程序必须向API 失败,禁用listenHTTP2 使一切正常

两个服务器前端/后端的密码相同

在 Chrome/Firefox/IE 中工作正常,我不知道 Safari 或我的服务器配置有什么问题

Safari 失败时 error.log 和 adomain-error.log 为空

nginx版本

nginx version: nginx/1.12.2
built by gcc …
Run Code Online (Sandbox Code Playgroud)

nginx ios safari http2

7
推荐指数
1
解决办法
3529
查看次数