Современное приложение использует Websockets для обновления данных приложения в реальном времени, например, в режиме реального времени или в чате.
Если приложение развернуто с Apache, его необходимо правильно настроить для управления запросами WebSocket (wss://).
В этом простом руководстве мы покажем вам, как настроить Apache для обработки этих запросов.
Вы узнаете, как включить нужные модули и настроить параметры VirtualHost.
🌐 Инструменты прокси для клиента HTTP и веб-отладки
В конце концов, ваш сервер Apache будет готов обрабатывать WebSocket-соединения, обеспечивая бесперебойную работу вашего приложения.
Например, у меня есть приложение Next.JS, запущенное на url https://example.com, но запросы к WebSocket выглядят как wss://example.com/_next/webpack-hmr.
Чтобы обработать запрос WebSocket (wss://) с помощью ProxyPass от Apache, необходимо убедиться, что сервер Apache правильно настроен на проксирование соединений WebSocket.
💉 Тестирование на уязвимости безопасности WebSockets
Далее простой пример настройки.
Включите необходимые модули Apache
Вам необходимо убедиться, что модули proxy, proxy_http, proxy_wstunnel и rewrite включены.
Включить эти модули можно с помощью следующих команд:
Настройте виртуальный хост
Добавьте следующую конфигурацию в файл Apache VirtualHost (обычно находится в /etc/apache2/sites-available/):
В этой конфигурации:
- RewriteRule: обрабатывает соединения WebSocket (ws://), перенаправляя их на внутренний сервер (например, работающий на порту 3000).
- ProxyPass/ProxyPassReverse: Обрабатывает обычный HTTP-трафик.
Перезапустите Apache
После внесения изменений перезапустите Apache, чтобы применить конфигурацию:
Эта конфигурация должна правильно проксировать WebSocket-соединения (wss://) для example.com/_next/webpack-hmr через Apache.
Заключение
Выполнив шаги, описанные в этой статье, вы сможете успешно настроить Apache для обработки запросов WebSocket (wss://), обеспечив бесперебойную связь между вашим клиентом и внутренними серверами.
Правильное включение необходимых модулей и настройка правильных конфигураций ProxyPass и RewriteRule позволит Apache эффективно проксировать WebSocket-соединения, а также управлять обычным HTTP-трафиком.