如何通过 Nginx 反向代理连接到 InfluxDB?

问题描述

我将 Nginx 作为反向代理运行在一台只有一个开放端口的计算机上。通过这个端口和 Nginx,我将收到的请求重定向到几个内部服务器。现在我需要在这台计算机上运行 InfluxDB,但是写入 InfluxDB 的客户端在另一台计算机上。 我的第一个想法是添加一个新位置来重定向输入请求,因为端口 8086 已关闭,例如:

location /databasets {
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Nginx-Proxy true;
            proxy_pass http://localhost:8086;       
        }

然后,使用 Python,我使用:

client = InfluxDBClient(host='https://myurl',port=10000,'root',dbname='mydb',path='databasets',ssl=True,proxies={"https": "https://myurl:10000/databasets"})

但到目前为止它不起作用,我尝试了几种配置我在互联网上看到的 Nginx.conf 文件方法,并且还更改了 Python 客户端中的主机/端口。我不知道这是否不可能,或者错误在哪一边,有什么想法吗?

提前致谢

解决方法

在你的 nginx 配置中添加以下配置

位置/数据库/{

proxy_pass http://localhost:8086;

重写^/databasets/(.*) /$1 break;

proxy_set_header 主机 $host;

}

输入url需要重写