将请求路由到多个后端服务器Dropwizard和Elasticsearch

时间:2015-05-11 19:20:36

标签: http nginx elasticsearch frontend dropwizard

我必须后端服务器:

  1. 作为主要应用程序服务器的dropwizard服务器。前端使用此服务器进行除搜索之外的所有操作。
  2. 一个弹性搜索服务器,由dropwizard服务器提供,为所有搜索查询提供服务。
  3. 知道dropwizard在端口8080上运行而弹性搜索在端口9200上运行,是否有任何策略可以使用单个前端(例如nginx或apache)将搜索请求路由到elasticsearch并将非搜索请求路由到dropwizard(添加额外的标头以区分搜索请求或在搜索请求的网址中使用不同的路径?)

    我愿意接受任何建议或配置,

    提前致谢,

1 个答案:

答案 0 :(得分:2)

Nginx配置

您可以通过自己的端口代理它们:

server {
  listen 8080;

  location / {
    proxy_pass http://dropwizard-host:8080/;
  }
}

server {
  listen 9200;

  location / {
    proxy_pass http://elasticsearch-host:9200/;
  }
}

或者将它们映射到具有不同路径的同一端口:

server {
  listen 80;

  location /dropwizard {
    proxy_pass http://dropwizard-host:8080/;
  }

  location /elasticsearch {
    proxy_pass http://elasticsearch-host:9200/;
  }
}