Назад | Перейти на главную страницу

Ограничение Elasticsearch с помощью Nginx Basic auth

У меня есть экземпляр Elasticsearch, работающий в ящике на порту 9200. Я пытаюсь защитить его с помощью Nginx, с которым я новичок. У меня запущен Elasticsearch на порту 9200, и вот моя конфигурация nginx для отображения на 9201:


#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    upstream elasticsearch {
      server 127.0.0.1:9200;
      keepalive 15;
    }

    server {
        listen       9201;

        location / {
          auth_basic "Restricted Access";
          auth_basic_user_file /etc/nginx/conf.d/.htpasswd;
          proxy_pass http://elasticsearch;
          proxy_http_version 1.1;
          # proxy_set_header Upgrade $http_upgrade;
          # proxy_set_header Connection 'upgrade';
          # proxy_set_header Host $host;
          # proxy_cache_bypass $http_upgrade;
        }
    }


    include servers/*;
}

Хотя я могу перейти на localhost: 9201 в моем браузере, и он запрашивает у меня имя пользователя и пароль, когда я перехожу на localhost: 9200, я вижу доступ к Elasticsearch без имени пользователя / пароля. перестать показывать elasticsearch через 9200? Я уже пробовал заставить nginx listen 9200; Я также работал со следующей информацией: https://mapr.com/blog/how-secure-elasticsearch-and-kibana/