Amazon ec2 Apache2服务器和超集,502代理错误,加载仪表板时从远程服务器读取错误 简短介绍

Amazon ec2 Apache2服务器和超集,502代理错误,加载仪表板时从远程服务器读取错误 简短介绍,amazon-ec2,proxy,apache2,apache-superset,dremio,Amazon Ec2,Proxy,Apache2,Apache Superset,Dremio,我的Apache超集和Apache2服务器位于同一个EC2实例上。Apache2充当代理服务器。它接受HTTPS请求并将它们传输到Apache超集。Apache超集是使用gunicorn运行的 问题 对ApacheDremio数据引擎的请求可能需要一些时间(启用代理\u修复,superset\u web服务器\u超时 此外,使用nginx构建了类似的代理设置,错误与此处描述的类似 任何帮助或想法都将不胜感激。多谢各位 有用信息 Apache超集版本:0.37.2 ApacheDremio版本:4

我的Apache超集和Apache2服务器位于同一个EC2实例上。Apache2充当代理服务器。它接受HTTPS请求并将它们传输到Apache超集。Apache超集是使用
gunicorn
运行的

问题 对ApacheDremio数据引擎的请求可能需要一些时间(<60秒)。访问超集上的仪表板时,使用DNS名称和SSL,并使用代理设置,某些仪表板部件(请求)失败,出现以下错误:

Proxy Error
The proxy server received an invalid response from an upstream server.
The proxy server could not handle the request
Reason: Error reading from remote server
奇怪的是,尽管
ProxyTimeout
的默认值相当高,但这些错误可能在几秒钟内出现


如果通过IP地址访问超集,则不会出现此问题

apache2/Error.log中的错误消息:

(20014) Internal error (specific information not available): [client 10.4.26.3:6969] AH01102: error reading status line from remote server localhost:8088, referer: ...
试图解决一个问题的是什么 问题可能是代理服务器超时或超集web服务器断开某些连接。我的Apache2配置:

<VirtualHost *:443>
  ProxyPreserveHost On
  ProxyRequests Off
  ServerName dash.domain.com
  ServerAlias dash.domain.com

  SSLEngine on
  SSLCertificateFile /etc/ssl/private/cert.crt
  SSLCertificateChainFile /etc/ssl/certs/cert2.crt
  SSLCertificateKeyFile /etc/ssl/private/key.key

  ProxyPass / http://localhost:8088/ connectiontimeout=3600 timeout=3600
  ProxyPassReverse / http://localhost:8088/

  # things tried
  # SetEnv force-proxy-request-1.0 1
  # SetEnv proxy-nokeepalive 1
  # SetEnv proxy-initial-not-pooled 1
  # ProxyTimeout 3600
  # TimeOut 3600
</VirtualHost>

代理主机
代理请求关闭
ServerName dash.domain.com
ServerAlias dash.domain.com
斯伦金安
SSLCertificateFile/etc/ssl/private/cert.crt
SSLCertificateChainFile/etc/ssl/certs/cert2.crt
SSLCertificateKeyFile/etc/ssl/private/key.key
ProxyPass/http://localhost:8088/ connectiontimeout=3600超时=3600
ProxyPassReverse/http://localhost:8088/
#尝试过的事情
#SetEnv force-proxy-request-1.0 1
#SetEnv代理nokeepalive 1
#SetEnv代理初始值未合并为1
#代理超时3600
#超时3600
经过测试(但不起作用):

  • 超时
    代理超时
  • 连接超时
    超时
    (如上所示)
  • Keepalive=On
    用于ProxyPass
  • 不同的环境
  • superset\u config.py
    ->启用代理\u修复,superset\u web服务器\u超时
  • 此外,使用
    nginx
    构建了类似的代理设置,错误与此处描述的类似

    任何帮助或想法都将不胜感激。多谢各位

    有用信息 Apache超集版本:0.37.2

    ApacheDremio版本:4.1.0

    Apache2服务器版本:2.4.29

    EC2实例类型:t3.medium


    操作系统版本:Ubuntu18.04

    问题出在gunicorn异步工作程序中。来自图表的请求太多,工人无法处理。将工作类型从异步更改为同步(默认gunicorn类型)解决了代理问题

    我仍然不知道为什么IP直接访问没有产生502代理错误

    很抱歉,问题中没有包含有关gunicorn的信息


    p.S.从他们的文档中建议Apache Superset的工作类型是异步,但对于我来说,同步是更好的解决方案。理论上,同步工作程序比异步工作程序慢(在超集上下文中)。

    您的DNS设置是什么?DNS工作正常。我不知道你所说的“DNS设置”是什么意思。“如果通过IP地址访问超集,则不会出现问题。”考虑到Nginx也会出现同样的问题,DNS可能无法正常工作。但我仍然可以访问仪表板,并且它们部分工作。当通过IP地址访问时,我不使用Apache代理,而是直接使用超集。