将请求路由到多个后端服务器 Dropwizard 和 Elasticsearch
Routing requests to multiple backend servers Dropwizard and Elasticsearch
我必须后端服务器 :
- 一个dropwizard服务器,主要作为应用服务器。此服务器由前端用于除搜索之外的所有操作。
- 由为所有搜索查询提供前端服务的 dropwizard 服务器提供的 elasticsearch 服务器。
知道 dropwizard 运行 在端口 8080 上,elasticsearch 在端口 9200 上,是否有任何策略可以使用单个前端(例如 nginx 或 apache)来将搜索请求路由到 elasticsearch 和对 dropwizard 的非搜索请求(添加额外的 headers 以区分搜索请求或在 url 中使用不同的路径进行搜索请求)?
我愿意接受任何建议或配置,
提前致谢,
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/;
}
}
我必须后端服务器 :
- 一个dropwizard服务器,主要作为应用服务器。此服务器由前端用于除搜索之外的所有操作。
- 由为所有搜索查询提供前端服务的 dropwizard 服务器提供的 elasticsearch 服务器。
知道 dropwizard 运行 在端口 8080 上,elasticsearch 在端口 9200 上,是否有任何策略可以使用单个前端(例如 nginx 或 apache)来将搜索请求路由到 elasticsearch 和对 dropwizard 的非搜索请求(添加额外的 headers 以区分搜索请求或在 url 中使用不同的路径进行搜索请求)?
我愿意接受任何建议或配置,
提前致谢,
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/;
}
}