我在Amazon弹性beanstalk服务器中的tomcat 8环境中部署了一个java spring应用程序。应用程序已使用适当的证书配置HTTPS。当套接字连接连接应用程序时,我在日志中遇到错误
ERROR o.s.w.s.s.s.DefaultHandshakeHandler - Handshake failed due to invalid Upgrade header: null
我试图弄清楚互联网,有些帖子说它需要启用HTTPS。 HTTPS已启用,并且对同一服务器的正常webservice调用有效。
如果有人有任何想法,请告诉我。谢谢!
答案 0 :(得分:1)
问题是弹性beanstalk使用代理,因此您可以配置代理以支持套接字。
Tomcat的默认代理是Apache,我已使用下一个文件将其更改为nginx:
<强> .ebextensions \ nginx的-proxy.config 强>
option_settings:
AWS:elasticbeanstalk:环境:代理:
ProxyServer: nginx
然后我添加了我的nginx文件:
<强> .ebextensions \ files.config 强>
文件: “/etc/nginx/conf.d/01_websockets.conf”: 模式:“000644” 所有者:root group:root 内容:| 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";
}
}
}
祝你好运!!!