首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从h2到h2c的HTTP/2反向代理

从h2到h2c的HTTP/2反向代理
EN

Stack Overflow用户
提问于 2016-06-15 12:27:26
回答 1查看 3.4K关注 0票数 7

我们有一个java服务器,可以通过h2c (HTTP/2明文)提供内容服务。

我们希望将使用h2 (即标准HTTP/2通过SSL)建立的代理连接反向到h2c中的java服务器。

在nginx上启用HTTP/2非常简单,并且处理传入的h2连接很好。

我们如何告诉nginx使用h2c而不是http/1.1代理连接?

注:非nginx溶液可接受。

代码语言:javascript
复制
server {
    listen       443 ssl http2 default_server;
    server_name  localhost;

    ssl_certificate      /opt/nginx/certificates/???.pem;
    ssl_certificate_key  /opt/nginx/certificates/???.pk8.key.pem;

    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;

    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;

    location / {
        proxy_pass http://localhost:8080/;  ## <---- h2c here rather than http/1.1
    }
}

结论(2016年6月)

这可以通过使用像下面这样简单的配置文件使用haproxy来完成。

查询(HttpServletRequest) req.getProtocol()显然返回HTTP/2.0

代码语言:javascript
复制
global
tune.ssl.default-dh-param 1024

defaults
timeout connect 10000ms
timeout client 60000ms
timeout server 60000ms

frontend fe_http
mode http
bind *:80
# Redirect to https
redirect scheme https code 301

frontend fe_https
mode tcp
bind *:443 ssl no-sslv3 crt mydomain.pem ciphers TLSv1.2 alpn h2,http/1.1
default_backend be_http

backend be_http
mode tcp
server domain 127.0.0.1:8080
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-15 13:00:32

HAProxy确实支持这一点。

HAProxy可以卸载TLS并转发到使用h2c语言的后端。

有关如何设置此配置的详细信息,可在这篇博客文章中获得。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37835445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档