elasticsearch-py连接HTTPS Elasticsearch时忽略HTTPS_PROXY环境变量求助
解决Elasticsearch Python客户端忽略HTTPS_PROXY的问题
当使用RequestsHttpConnection连接HTTPS端口的Elasticsearch时,客户端不会自动读取HTTPS_PROXY环境变量,需要显式将代理配置传入请求参数。
修复后的代码
import os from elasticsearch import Elasticsearch, RequestsHttpConnection # 从环境变量提取代理配置 proxy_config = { "https": os.getenv("HTTPS_PROXY") } if os.getenv("HTTPS_PROXY") else None es = Elasticsearch( [es_url], connection_class=RequestsHttpConnection, requests_kwargs={"proxies": proxy_config} )
关键说明
RequestsHttpConnection依赖requests库,但默认不会自动加载HTTPS代理环境变量,必须通过requests_kwargs把代理字典传递给底层的requests请求。- 如果代理需要身份验证,直接把带认证信息的代理地址(格式如
http://username:password@proxy-host:port)设置到HTTPS_PROXY环境变量即可,代码会自动识别。 - 确保环境变量使用大写的
HTTPS_PROXY,requests对环境变量的大小写有严格要求,小写的https_proxy在部分场景下可能不生效。
内容的提问来源于stack exchange,提问作者Raja Joud Haidar
相关产品推荐
相关产品推荐

