Настройка WebSocket
Настройка обратного прокси выполняется в рамках настройки механизма отправки сообщений через WebSocket канал.
WebSocket канал может быть использован:
-
Для обмена сообщениями между сервером и встроенным приложением (в SMP используются соответствующие методы api).
-
Для автоматического обновления списка комментариев, которое позволяет отображать новые комментарии без перезагрузки страницы браузера. Автообновление применяется для контента "Комментарии" со списком комментариев текущего объекта.
Настройка автообновления списка комментариев также включает в себя настройку параметров WebSocket в конфигурационном файле dbaccess.properties.
-
Для получения и отправки текстовых сообщений во внешние каналы, например, Telegram, Вконтакте, Чат на сайте.
-
Для отправки сообщений о событиях с объектом.
Настройка обратного прокси Nginx
Пример конфигурации (где tomcat_address — адрес сервера Apache Tomcat, 8080 — порт, на котором он работает):
location /sd/ws {
proxy_pass http://tomcat_address:8080;
proxy_read_timeout 300;
proxy_send_timeout 300;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_http_version 1.1;
}
Настройка обратного прокси IIS
Протокол AJP не поддерживает веб-сокеты. Для работы веб-сокетов рекомендуется использовать сервер IIS с помощью расширения Application Request Routing (ARR)
Для работы WebSockets должен быть установлен соответствующий модуль поддержки данного протокола в IIS:
-
Установите модуль, используя "Диспетчер серверов" меню "Добавить роли и компоненты".
- После установки модуля перезапустите службу IIS.
-
Убедитесь, что установленный модуль используется, перейдя в пункт "Модули" в необходимом "сайте" IIS.
Если отмеченного модуля нет в списке, то необходимо добавить его, перейдя в "Выполняется настройка собственных модулей" и отметив пункт "WebSocketModule".
-
В настройках переопределения URL-адресов добьте следующие серверные переменные:
- HTTP_X_FORWARDED_HOST
- HTTP_X_FORWARDED_PROTO
- HTTP_X_FORWARDED_SERVER
-
Затем в правиле, отвечающем за перенаправление в Apache Tomcat, добавьте значения для серверных переменных:
- HTTP_X_FORWARDED_HOST: значение {HTTP_HOST}, заменить на True;
- HTTP_X_FORWARDED_SERVER: значение {HTTP_HOST}, заменить на True;
- HTTP_X_FORWARDED_PROTO: значение https (если используется HTTP, то указать http), заменить на False.
-
В параметрах Apache Tomcat в разделе Java — Java Options добавьте опцию:
-Dorg.apache.tomcat.websocket.DISABLE_BUILTIN_EXTENSIONS=true
Важной особенностью при работе с IIS является необходимость добавления Java-опции в параметрах запуска Apache Tomcat.
Особенность работы механизма в браузере Mozilla Firefox
Из-за встроенной в браузер оптимизации использования памяти и производительности приложение на неактивной вкладке ограничивается в ресурсах. Поэтому сообщения о редактировании и изменении объекта на неактивные вкладки могут не приходить.