2015-02-07 14 views
6

Mam lokalny serwer ElasticSearch, upubliczniony przez Nginx, który zapobiega żądaniom POST, PUT i DELETE. Jest to moja konfiguracja Nginx wystarczająco, aby uniemożliwić operacje wykraczające poza pobieranie informacji? Czy sugerujesz ulepszenia?Użyj Nginx jako proxy, aby uniemożliwić tworzenie/aktualizację/usuwanie operacji w ElasticSearch przez klienta JavaScript po stronie klienta

upstream elasticsearch { 
     server localhost:9200; 
    } 

    server { 
     listen 7777; 

     location/{ 
     return 403; 
     limit_except PUT POST DELETE { 
      proxy_pass http://elasticsearch; 
     } 
     proxy_redirect off; 
     } 

    } 

Dziękuję.

[UPDATE]

Moja konfiguracja po poradę deagh za:

upstream elasticsearch { 
     server localhost:9200; 
    } 

    server { 
     listen 7777; 

     location/{ 
     return 403; 
     limit_except PUT POST DELETE { 
      proxy_pass http://elasticsearch; 
     } 
     proxy_redirect off; 
     } 

     location ~* ^(/_cluster|/_nodes|/_shutdown) { 
     return 403; 
     break; 
     } 

    } 

Odpowiedz

4

Należy również zadbać o dojazd do różnych miejsc elasticsearh jak

  • _cluster
  • _nodes
  • _shutdown

można znaleźć więcej informacji o pracy (i bezpieczne) konfigurację nginx i elasticsearch w dokumentacji =>http://www.elasticsearch.org/blog/playing-http-tricks-nginx/

+0

Dziękujemy! Zaktualizowałem konfigurację, jeśli chcesz sprawdzić. –