问题描述
我将 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需要重写