Java 由于部署在EBS中的Tomcat中的升级头无效,握手失败
我在AmazonElasticBeanstalk服务器的Tomcat8环境中部署了一个JavaSpring应用程序。应用程序已使用正确的证书配置HTTPS。当套接字连接连接到应用程序时,我会在日志中看到下面的错误Java 由于部署在EBS中的Tomcat中的升级头无效,握手失败,java,spring,tomcat,ssl,amazon-elastic-beanstalk,Java,Spring,Tomcat,Ssl,Amazon Elastic Beanstalk,我在AmazonElasticBeanstalk服务器的Tomcat8环境中部署了一个JavaSpring应用程序。应用程序已使用正确的证书配置HTTPS。当套接字连接连接到应用程序时,我会在日志中看到下面的错误 ERROR o.s.w.s.s.s.DefaultHandshakeHandler - Handshake failed due to invalid Upgrade header: null 我试图在互联网上找到答案,一些帖子说需要启用HTTPS。HTTPS已经启用,对同一服务器的
ERROR o.s.w.s.s.s.DefaultHandshakeHandler - Handshake failed due to invalid Upgrade header: null
我试图在互联网上找到答案,一些帖子说需要启用HTTPS。HTTPS已经启用,对同一服务器的正常webservice调用可以正常工作
如果有人有任何想法,请告诉我。谢谢大家! 问题在于弹性beanstalk使用代理,因此您可以将代理配置为支持套接字 Tomcat的默认代理是Apache,我已使用下一个文件将其更改为nginx: .ebextensions\nginx proxy.config 选项设置: aws:elasticbeanstalk:environment:proxy:
ProxyServer: nginx
然后我添加了我的nginx文件:
.ebextensions\files.config
档案:
“/etc/nginx/conf.d/01_websockets.conf”:
模式:“000644”
所有者:root
组:根
内容:|
工人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";
}
}
}
祝你好运 这是否相关@AnandBhat HTTPS已在我的实例安全组中启用。@APaul找到解决方案了吗?如果你有新问题,请点击按钮提问。如果你有足够的声誉,问题就来了。或者,“star”将其作为收藏夹,您将收到任何新答案的通知。向nginx config添加以下字符串对我有帮助:#启用WS-support proxy_http_版本1.1;代理设置头升级$http\U升级;代理设置头连接“升级”;谢谢