Spec-Zone.ru › Apache HTTP Server

Модуль Apache mod_proxy_wstunnel

Описание: Модуль поддержки WebSocket для mod_proxy
Статус: Расширение
Идентификатор модуля: proxy_wstunnel_module
Файл исходного кода: mod_proxy_wstunnel.c
Совместимость: Доступен в httpd 2.4.5 и более поздних версиях

Краткое описание

Этот модуль требует обслуживания mod_proxy. Он обеспечивает поддержку туннелирования соединений WebSocket к серверу приложений WebSocket. Соединение автоматически повышается до соединения WebSocket:

Ответ HTTP

Upgrade: WebSocket
Connection: Upgrade

Перенаправление запросов на сервер WebSocket, например echo.websocket.org, можно выполнить с помощью директивы ProxyPass.

ProxyPass "/ws2/"  "ws://echo.websocket.org/"
ProxyPass "/wss2/" "wss://echo.websocket.org/"

Перенаправление как HTTP, так и WebSocket одновременно, при этом определенный набор URL предназначен только для WebSocket, можно выполнить, указав директиву WebSocket ProxyPass перед директивой HTTP:

ProxyPassMatch ^/(myApp/ws)$  ws://backend.example.com:9080/$1
ProxyPass / http://backend.example.com:9080/

Перенаправление как HTTP, так и WebSocket одновременно, где URL WebSocket не только для WebSocket или не известны заранее, можно выполнить, используя директиву RewriteRule для настройки перенаправления WebSocket:

ProxyPass / http://example.com:9080/
RewriteEngine on
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteRule ^/?(.*) "ws://example.com:9080/$1" [P,L]

Сбалансированную загрузку для нескольких бэкендов можно достичь, используя mod_proxy_balancer.

На самом деле модуль может быть использован для повышения до других протоколов. Можно установить параметр upgrade в директиве ProxyPass, чтобы позволить модулю принимать другие протоколы. NONE означает, что вы пропускаете проверку заголовка, но всё равно повышаете до WebSocket. ANY означает, что Upgrade будет считывать заголовки запроса и использовать их в ответе Upgrade

Директива ProxyWebsocketFallbackToProxyHttp

Описание: Инструктирует данный модуль позволить mod_proxy_http обработать запрос
Синтаксис:
ProxyWebsocketFallbackToProxyHttp On|Off
Значение по умолчанию:
ProxyWebsocketFallbackToProxyHttp On
Контекст: настройки сервера, виртуальный хост
Статус: Расширение
Модуль: mod_proxy_wstunnel
Совместимость: Доступен в httpd 2.4.48 и более поздних версиях

Начиная с httpd 2.4.47, mod_proxy_http может обрабатывать повышение и туннелирование WebSocket в соответствии с RFC 7230. Данная директива контролирует, должен ли mod_proxy_wstunnel передать запрос mod_proxy_http, что является значением по умолчанию.

Установка значения Off позволяет mod_proxy_wstunnel обрабатывать запросы WebSocket, как в httpd 2.4.46 и более ранних версиях.

© 2018 The Apache Software Foundation
Licensed under the Apache License, Version 2.0.
https://httpd.apache.org/docs/2.4/en/mod/mod_proxy_wstunnel.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API