apache 反向代理 http2 到 https

apache 反向代理 http2 到 https

编辑:我弄清楚了这个问题

我没有打开 http2 模块,因此在边缘启用 http2 不起作用。我不需要 apache 和我的节点服务器之间的 http2 通信,因为服务器之间没有 HTTP 连接限制。

本指南包含所有详细信息:

https://docs.bitnami.com/aws/apps/trac/administration/enable-http2-apache/

原始问题:

我在aws bitnami上使用apache作为一组节点服务器的反向代理。 vhost配置如下:

<VirtualHost *:443>
    SSLProxyEngine on
    ServerName staging.website.com
    ProxyRequests off
    Protocols h2 h2c http/1.1

    Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED
    <Proxy balancer://httpBalancer>
      BalancerMember http://127.0.0.1:2001 route=1
      BalancerMember http://127.0.0.1:2002 route=2

      Order Deny,Allow
      Deny from none
      Allow from all

      ProxySet lbmethod=bybusyness
      ProxySet stickysession=ROUTEID
    </Proxy>

    <Proxy balancer://wsBalancer>
      BalancerMember ws://127.0.0.1:2001 route=1
      BalancerMember ws://127.0.0.1:2002 route=2

      Order Deny,Allow
      Deny from none
      Allow from all

      ProxySet lbmethod=bybusyness
      ProxySet stickysession=ROUTEID
    </Proxy>

    #RewriteEngine On
    #RewriteCond %{HTTP:Upgrade}  =websocket                     [NC]
    #RewriteRule /updates         balancer://wsBalancer/updates  [P,L]

    ProxyPass /updates balancer://wsBalancer/updates
    ProxyPass / balancer://httpBalancer/
    ProxyPassReverse / balancer://httpBalancer
    ProxyPassReverse /updates balancer://wsBalancer/updates
    ProxyPreserveHost On
    SSLEngine on
    SSLCertificateFile "/opt/bitnami/apache2/conf/server.crt"
    SSLCertificateKeyFile "/opt/bitnami/apache2/conf/server.key"

    SetEnvIfNoCase Origin "https?://(www\.)?(stripe\.com|js\.stripe\.com)(:\d+)?$" ACAO=$0
    Header set Access-Control-Allow-Origin %{ACAO}e env=ACAO
    Header set Access-Control-Allow-Credentials "true" env=ORIGIN
    Header set Content-Security-Policy "frame-ancestors *.quikstrike.net;"
    # Always set Vary: Origin when it's possible you may send CORS headers
    Header merge Vary Origin
</VirtualHost>

我想让 apache 服务器接受来自 Web 浏览器客户端的 http2 连接,以便充分利用其完全多路复用。对我而言,对节点服务器的请求是 https、http 还是 http2 并不重要。这可能吗?如果这些是唯一的选择,我愿意接受涉及切换到 nginx 或使用 AWS 负载均衡器的解决方案,但我真的需要 http2 的完全多路复用

答案1

(该答案也是对原始问题的编辑)

我没有打开 http2 模块,因此在边缘启用 http2 不起作用。我不需要 apache 和我的节点服务器之间的 http2 通信,因为服务器之间没有 HTTP 连接限制。

本指南包含所有详细信息:

https://docs.bitnami.com/aws/apps/trac/administration/enable-http2-apache/

相关内容