【问题标题】:Handshake failed due to invalid Upgrade header in Tomcat deployed in EBS由于部署在 EBS 中的 Tomcat 中的升级标头无效,握手失败
【发布时间】:2015-12-13 03:56:54
【问题描述】:

我在 Amazon elastic beanstalk 服务器的 tomcat 8 环境中部署了一个 java spring 应用程序。应用程序配置了正确证书的 HTTPS。当套接字连接连接应用程序时,日志中出现以下错误

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

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

如果有人有任何想法,请告诉我。谢谢!

【问题讨论】:

  • @AnandBhat HTTPS 已在我的实例安全组中启用。
  • @APaul 你找到解决方案了吗?我也遇到这种情况,能否分享一下解决方法

标签: java spring tomcat ssl amazon-elastic-beanstalk


【解决方案1】:

问题是弹性beantalk使用代理,所以你可以配置代理来支持套接字。

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

.ebextensions\nginx-proxy.config

option_settings:

aws:elasticbeanstalk:environment:proxy:

ProxyServer: nginx

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

.ebextensions\files.config

文件: “/etc/nginx/conf.d/01_websockets.conf”: 模式:“000644” 所有者:根 组:根 内容:| 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";
                        }
                }
        }

祝你好运!!!

【讨论】:

  • 如果您有新问题,请点击 按钮提出问题。如果您有足够的声誉,you may upvote 的问题。或者,将其“加注”为收藏夹,您将收到任何新答案的通知。
  • 将以下字符串添加到 nginx 配置对我有帮助: # 启用 WS 支持 proxy_http_version 1.1; proxy_set_header 升级 $http_upgrade; proxy_set_header 连接“升级”;谢谢!
猜你喜欢
  • 2015-09-21
  • 2021-11-11
  • 2021-03-11
  • 2018-11-26
  • 2019-10-26
  • 2021-09-13
  • 2022-12-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多