위에서 언급한 대로 ElasticSearch에 대해 nginx 역방향 프록시(HTTP 기본 인증 사용)를 설정하고 있습니다.본문에서.
이것은 내 nginx 구성 파일입니다.
events {
worker_connections 1024;
}
http {
upstream elasticsearch {
server elasticsearch.example.org:9200;
keepalive 64;
}
server {
listen 8080;
location / {
auth_basic "ElasticSearch";
auth_basic_user_file /var/www/.htpasswd;
proxy_pass http://elasticsearch.example.org:9200;
proxy_http_version 1.1;
proxy_set_header Connection "Keep-Alive";
proxy_set_header Proxy-Connection "Keep-Alive";
}
}
}
프록시는 포트 8080을 9200으로 올바르게 전달하며 Elasticsearch에 대한 연결 유지를 유지해야 합니다.
URL에 접속한 결과입니다.http://elasticsearch.example.org:9200/_nodes/stats/http?pretty또는http://elasticsearch.example.org:8080/_nodes/stats/http?pretty(HTTP 인증이 완료되었습니다.) 브라우저에서:
{
"cluster_name" : "elasticsearch",
"nodes" : {
"rIFmzNwsRvGp8kipbcwajw" : {
"timestamp" : 1455899085319,
"name" : "Kid Colt",
"transport_address" : "elasticsearch.example.org/10.3.3.3:9300",
"host" : "10.3.3.3",
"ip" : [ "elasticsearch.example.org/10.3.3.3:9300", "NONE" ],
"http" : {
"current_open" : 3,
"total_opened" : 28
}
}
}
}
이 필드는 페이지가 포트 9200(Elasticsearch에 직접 연결)에서 액세스되고 다시 로드될 때 증가해야 하며 total_opened
, 포트 8080(nginx 프록시를 통해)에서 액세스하고 다시 로드될 때 변경되어서는 안 됩니다.
사실, 그 반대가 사실입니다. 이 이상한 행동의 이유는 무엇입니까?
답변1
upstream
라는 컨테이너를 정의했습니다 elasticsearch
. 하지만 당신은 그것을 부르지 않습니다. 지시문을 다음으로 바꾸십시오 proxy_pass
.
proxy_pass http://elasticsearch;
바라보다이 파일더 알아보기.