Ray*_*ski 2 java apache spring spring-websocket angular
我在 Spring Boot 应用程序中使用 ws(非安全 WebSocket)。一旦客户端尝试连接到服务器,就会出现以下错误:
\nHandshake failed due to invalid Upgrade header: null
Spring Boot 应用程序在 Apache 代理后面的 Ubuntu 服务器上运行。Apache配置如下:
\n<VirtualHost *:80>\n DocumentRoot /var/www/myapp/public/\n ServerAdmin webmaster@localhost\n ServerName app.myapp.biz\n\n RewriteEngine On\n RewriteCond %{HTTP:Upgrade}^websocket$ [NC,OR]\n RewriteCond %{HTTP:Connection}^upgrade$ [NC]\n RewriteRule .* "ws:/127.0.0.1:8096/$1" [P,QSA,L]\n\n ProxyPreserveHost On\n ProxyRequests Off\n ProxyPass / http://127.0.0.1:8096/\n ProxyPassReverse / http://127.0.0.1:8096/\n RequestHeader set X-Forwarded-Proto http\n RequestHeader set X-Forwarded-Port 80\n\n SetEnv mongo_username aUser\n SetEnv mongo_password aPassword\n</VirtualHost>\n
Run Code Online (Sandbox Code Playgroud)\n这application.properties
的如下:
debug=false\nserver.port=8096\nserver.address=127.0.0.1\n\nserver.forward-headers-strategy=native\nserver.tomcat.use-relative-redirects=true\nserver.tomcat.remoteip.protocol-header=x-forwarded-proto\nserver.tomcat.remoteip.remote-ip-header=x-forwarded-for\nserver.tomcat.remoteip.port-header=x-forwarded-port\n
Run Code Online (Sandbox Code Playgroud)\n当在我的开发机器上运行应用程序时,一切正常。一旦部署到服务器上就会出现上述错误。我\xe2\x80\x99已经用谷歌搜索了很多,但无法\xe2\x80\x99找到针对这个问题的具体内容。我希望有人能帮帮忙。
\n信息:尝试连接的前端应用程序是一个 Angular 应用程序,使用ng2-stompjs
.
我终于找到了错误。语句中的顺序apache.conf
确实很重要!工作conf文件如下所示:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName app.myapp.biz
ProxyPreserveHost On
ProxyRequests Off
ProxyPass / http://127.0.0.1:8096/
ProxyPassReverse / http://127.0.0.1:8096/
RewriteEngine On
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteRule ^/?(.*) "ws://127.0.0.1:8096/$1" [P,L]
SetEnv mongo_username aUser
SetEnv mongo_password aPassword
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3053 次 |
最近记录: |