java – 用于wss协议的Apache反向代理
发布时间:2020-12-15 04:26:47 所属栏目:Java 来源:网络整理
导读:我的应用程序使用SockJS和 Spring Framework.我的服务器上有一个反向代理,用于将https请求重定向到tomcat容器.配置: VirtualHost *:443 ProxyPreserveHost On ProxyPass /boot http://127.0.0.1:8080/boot/ ProxyPassReverse /boot http://127.0.0.1:8080/b
|
我的应用程序使用SockJS和
Spring Framework.我的服务器上有一个反向代理,用于将https请求重定向到tomcat容器.配置:
<VirtualHost *:443>
ProxyPreserveHost On
ProxyPass /boot http://127.0.0.1:8080/boot/
ProxyPassReverse /boot http://127.0.0.1:8080/boot/
ServerName MY_DOMAIN.com
SSLEngine on
SSLProtocol all
SSLCertificateFile /etc/apache2/ssl/muhamo.crt
SSLCertificateKeyFile /etc/apache2/ssl/muhamo.key
SSLCACertificateFile /etc/apache2/ssl/bundl.crt
</VirtualHost>
如何配置虚拟主机以将wss请求转发给我的应用程序?我收到如下错误消息: Opening Web Socket... sockjs.js:1213 WebSocket connection to 'wss://MY_DOMAIN.com/boot/tracking/557/jcf7btih/websocket' failed: Error during WebSocket handshake: Unexpected response code: 403 sockjs.js:807 POST https://MY_DOMAIN.com/boot/tracking/557/7cl9qov2/xhr_streaming 403 (Forbidden) sockjs.js:807 POST https://MY_DOMAIN.com/boot/tracking/557/cvl8ti6k/xhr 403 (Forbidden) 解决方法
我不知道你是否解决了这个问题,但我遇到了同样的问题.
我认为问题出在apache服务器上,但它是在Spring端. 403代码是线索. 在我的情况下,除了你的配置(有必要的改编),我做的是添加以下内容: # Disable forward proxying ProxyRequests Off # proxy wss:// to ws:// ProxyPassMatch ^/(.*)/websocket ws://localhost:8080/$1/websocket # proxy ws fallbacks ProxyPass /ws http://localhost:8080/ws ProxyPassReverse /ws http://localhost:8080/ws 在Spring(Boot)方面: @Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {
@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
config.enableSimpleBroker("/topic");
}
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/ws").setAllowedOrigins("*").withSockJS();
}
}
setAllowedOrigins(“*”)是克服403错误的缺失部分. 干杯 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
