Nginx反向代理Datahub返回505 HTTP Version Not Supported错误如何解决
解决方案
问题根因
- Nginx反向代理默认向后端服务转发请求时使用HTTP/1.0版本,Datahub前端服务仅支持HTTP/1.1及以上版本的请求,因此触发505状态码报错
- 额外注意:你当前配置监听的是80端口,但请求日志显示请求跳转到了HTTPS地址,需要确认是否存在其他Nginx配置或者浏览器强制HTTPS跳转的逻辑,如果启用了HTTPS需要对应补充443端口监听配置
修复后的Nginx配置
upstream datahub-front { server localhost:9002; } server { server_name datahub.myhost.com; location / { proxy_pass http://datahub-front; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; proxy_redirect off; # 指定转发使用HTTP/1.1版本,解决505版本不支持错误 proxy_http_version 1.1; # 适配Datahub前端的WebSocket通讯需求 proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } listen 80; # 如果配置了HTTPS证书,可补充以下443监听配置 # listen 443 ssl; # ssl_certificate 你的证书存储路径.crt; # ssl_certificate_key 你的证书私钥存储路径.key; }
配置生效步骤
- 执行命令
nginx -t检查配置语法是否存在错误 - 确认无报错后执行
nginx -s reload重载Nginx配置使修改生效 - 清理浏览器缓存后重新访问域名验证服务可用性
内容的提问来源于stack exchange,提问作者Ryabchenko Alexander
相关产品推荐
相关产品推荐

