使用阿里云服务器部署Doris,多 BE 共享同一个可供集群外部访问的 IP,碰到 content_type 报错

Viewed 9

使用 官方文档 提供的 多 BE 共享同一个可供集群外部访问的 IP,
在 fe.conf 中配置
priority_networks = 172.16.188.188/32 # 内网IP
enable_arrow_flight_sql = true
arrow_flight_sql_port = 8070
在 be.conf 中配置
public_host = doris.xxx.com # Nginx域名
arrow_flight_sql_proxy_port = 80
arrow_flight_sql_port = 8050
同时 设置了 Nginx,配置文件

upstream arrowflight {
server 172.16.188.188:8050;
}

server {
listen 80 http2;
listen [::]:80 http2;
server_name doris.xxx.com;

#ssl_certificate   /etc/nginx/cert/myCA.pem;
#ssl_certificate_key /etc/nginx/cert/myCA.key;

location / {
    grpc_pass grpc://arrowflight;
    grpc_set_header X-Real-IP $remote_addr;
    grpc_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    grpc_set_header X-Forwarded-Proto $scheme;

    proxy_read_timeout 60s;
    proxy_send_timeout 60s;

    #proxy_http_version 1.1;
    #proxy_set_header Connection "";
}

}
在外网机器上,运行 python 代码
import adbc_driver_manager
import adbc_driver_flightsql.dbapi as flight_sql

conn = flight_sql.connect(
uri=f"grpc+tcp://doris.xxx.com:80",
db_kwargs={
adbc_driver_manager.DatabaseOptions.USERNAME.value: "doris user",
adbc_driver_manager.DatabaseOptions.PASSWORD.value: "doris pwd",
}, autocommit=True, )

cursor = conn.cursor()

cursor.execute("SELECT 1")
print(cursor.fetchallarrow().to_pandas())
代码始终报错
adbc_driver_manager.InternalError: INTERNAL: [FlightSQL] unexpected HTTP status code received from server: 400 (Bad Request); transport: received unexpected content-type "text/html" (Internal; Prepare)
感觉是 Nginx 配置问题,但又找不到解决办法,如何解决?

0 Answers