如何将流量从NGINX转发到localhost elasticsearch端口9200和kibana端口5601

kuhbmx9i  于 2023-05-28  发布在  Nginx
关注(0)|答案(1)|浏览(300)

我已经使用Docker compose成功地设置了本地Elasticsearch和Kibana。它们都可以分别通过https://localhost:9200和http://localhost:5601访问。现在我需要在上面设置一个Nginx,它将接收来自外部的请求,然后根据端口号将流量转发到Elasticsearch或Kibana下游服务。例如,如果Nginx接收到这个URL https://<my_public_ip>:9220的请求,它会将流量转发到https://localhost:9200,如果Nginx接收到这个URL http://<my_public_ip>:5611的请求,它会将流量转发到http://localhost:5601。
如何设置/配置此Nginx以使用Dockerfile或Docker compose执行此逻辑?非常感谢。

hsgswve4

hsgswve41#

你需要设置nginx作为代理

upstream elastic {
       server  nameOfYourElasticService:9200;
       keepalive  16;
  }

然后在服务器部分,需要配置代理

server{
    listen 443;
    # your ssl configuration
    
    location /elastic {
         proxy_pass http://accountservice; # hosttest
    }
  }

您可能需要在hearders上工作以通过代理传递,并且如果elastic/kibana进行一些重定向,请小心,因为现在重定向可能需要考虑nginx
另一方面是代理通常可以将HTTPS降级为HTTP。因此您服务器将需要一些证书
希望它能帮你指引正确的方向

相关问题