由于在EBS中部署的Tomcat中无效的Upgrade标头,握手失败

A P*_*aul 5 java ssl spring tomcat amazon-elastic-beanstalk

我在Amazon Elastic beantalk服务器的tomcat 8环境中部署了一个Java spring应用程序。该应用程序具有配置了正确证书的HTTPS。当套接字连接连接应用程序时,日志显示错误

ERROR o.s.w.s.s.s.DefaultHandshakeHandler - Handshake failed due to invalid Upgrade header: null
Run Code Online (Sandbox Code Playgroud)

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

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

Osc*_*uez 5

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

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

.ebextensions\nginx-proxy.config

选项设置:

aws:elasticbeanstalk:环境:代理:

ProxyServer: nginx
Run Code Online (Sandbox Code Playgroud)

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

.ebextensions\files.config

文件:“/etc/nginx/conf.d/01_websockets.conf”:模式:“000644”所有者:根组:根内容:| 工作进程 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";
                        }
                }
        }
Run Code Online (Sandbox Code Playgroud)

祝你好运!!!