Назад | Перейти на главную страницу

обратный прокси-сервер apache с http2 на https

РЕДАКТИРОВАТЬ: я понял проблему

У меня не был включен модуль http2, поэтому включение http2 на краю не работало. Мне не нужна связь http2 между apache и моими серверами узлов, так как между серверами нет ограничения HTTP-соединения.

В этом руководстве есть все подробности:

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

ОРИГИНАЛЬНЫЙ ВОПРОС:

Я использую apache на aws bitnami в качестве обратного прокси для набора узловых серверов. Конфигурация 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 мог принимать соединения http2 от клиентов веб-браузера, чтобы воспользоваться его полным мультиплексированием. Для меня не имеет значения, являются ли запросы к серверам узлов https, http или http2. Это возможно? Я открыт для решений, которые включают переход на nginx или использование балансировщика нагрузки AWS, если это единственный вариант, но мне действительно нужно полное мультиплексирование http2.

(Этот ответ также находится в редакции исходного вопроса)

У меня не был включен модуль http2, поэтому включение http2 на краю не работало. Мне не нужна связь http2 между apache и моими серверами узлов, так как между серверами нет ограничения HTTP-соединения.

В этом руководстве есть все подробности:

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