【发布时间】:2019-06-29 11:44:01
【问题描述】:
我正在尝试使用 mod_proxy 和 mod_proxy_wstunnel 模块将流量从 Apache 重定向到 CentOs 服务器上的 Tomcat。 HTTP 流量重定向没有问题,但我无法使用迄今为止尝试的任何配置成功重定向 websocket 流量。它给了我 200 个响应代码而不是 101。
我已经阅读了很多类似的问题,但还没有找到任何解决方案。这些有类似的问题。 Question 1, Question 2
我正在使用 Apache Server 2.4.6 -> Apache Tomcat 7.0.92 -> 带有 Spring 和 javax 套接字实现的 Java 应用程序。
这是我的模块:
这是我的 httpd 配置:
<VirtualHost *:80>
ServerName domain.com
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"$
CustomLog /var/log/httpd/log_access.log combined
ErrorLog /var/log/httpd/log_error.log
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On
<Proxy *>
Require all granted
</Proxy>
RewriteEngine On
#RewriteCond %{HTTP:Connection} Upgrade [NC]
#RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC]
RewriteRule /app-api/chat/user/(.*) ws://127.0.0.1:8080/app-api/chat/user/$1 [P,L]
ProxyPass /app-api http://127.0.0.1:8080/ retry=1 acquire=3000
ProxyPassReverse /app-api http://127.0.0.1:8080/
DocumentRoot /var/www/html
如果我直接在本地机器上使用连接到 Apache Tomcat - 一切都很好,它返回 101,但不是在远程机器上。
为什么我收到 200 个响应? 这个配置有什么问题?
我已经尝试了很多实现,但仍然有来自服务器的 200 响应而不是升级到 101。
【问题讨论】:
标签: java spring apache tomcat websocket