由于在EBS中部署的Tomcat中无效的Upgrade标头,握手失败 [英] Handshake failed due to invalid Upgrade header in Tomcat deployed in EBS

查看:422
本文介绍了由于在EBS中部署的Tomcat中无效的Upgrade标头,握手失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在Amazon Elastic beantalk服务器的tomcat 8环境中部署了一个Java spring应用程序.该应用程序已使用适当的证书配置了HTTPS.当套接字连接连接应用程序时,日志中出现以下错误

I have a java spring application deployed in a tomcat 8 environment in Amazon elastic beanstalk server. The application has HTTPS configured with proper certificate. When a socket connection connect the application I am getting below error in log

ERROR o.s.w.s.s.s.DefaultHandshakeHandler - Handshake failed due to invalid Upgrade header: null

我试图通过Internet弄清楚,一些帖子说它需要启用HTTPS. HTTPS已启用,并且对同一服务器的常规Web服务调用有效.

I tried to figure out over internet, some post is saying it need to enable HTTPS. HTTPS is already enabled and normal webservice calls to the same server works.

请让我知道是否有人有任何想法.谢谢!

Please let me know if anyone has any idea. Thank you !

推荐答案

问题是弹性beantalk使用代理,因此您可以配置代理以支持套接字.

The problem is the elastic beanstalk uses a proxy, so you can configure the proxy to support sockets.

Tomcat的默认代理是Apache,我将其与下一个文件一起更改为nginx:

The default proxy to Tomcat is Apache, I have changed it to nginx with the next file:

.ebextensions \ nginx-proxy.config

option_settings:

option_settings:

aws:elasticbeanstalk:environment:proxy:

aws:elasticbeanstalk:environment:proxy:

ProxyServer: nginx

然后我添加了我的nginx文件:

then I added my nginx file:

.ebextensions \ files.config

个文件: "/etc/nginx/conf.d/01_websockets.conf": 模式:"000644" 所有者:root 组:根 内容: worker_processes 1;

files: "/etc/nginx/conf.d/01_websockets.conf" : mode: "000644" owner: root group: root content : | worker_processes 1;

        events {
                worker_connections 2024;
        }


        http {
                include mime.types;
                default_type application/octet-stream;
                sendfile on;
                keepalive_timeout 65;
                gzip on;

                server {
                        listen 80;
                        server_name localhost;


                        location / {
                                proxy_set_header X-Real-IP $remote_addr;
                                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                                proxy_set_header Host $http_host;
                                proxy_set_header X-NginX-Proxy true; 

                                # prevents 502 bad gateway error
                                proxy_buffers 8 32k;
                                proxy_buffer_size 64k;

                                proxy_pass http://127.0.0.1:8080;
                                proxy_redirect off;

                                # enables WS support
                                proxy_http_version 1.1;
                                proxy_set_header Upgrade $http_upgrade;
                                proxy_set_header Connection  "upgrade";
                        }
                }
        }

祝你好运!

这篇关于由于在EBS中部署的Tomcat中无效的Upgrade标头,握手失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆