2012-05-27 9 views
7

Per la produzione, non è sicuro avere un amministratore solr che non richiede nemmeno le credenziali di accesso. Come posso disattivare la pagina di amministrazione di solr che viene fornita di default? Voglio semplicemente che la mia webapp utilizzi Solr per l'indicizzazione dei termini di ricerca.Come disabilitare la pagina admin di solr

risposta

10

Consiglio vivamente di mantenere la pagina di amministrazione a scopo di debug. Mi ha salvato in numerosi casi. Esistono modi per limitarlo solo agli utenti con autenticazione HTTP: http://wiki.apache.org/solr/SolrSecurity#Jetty_example. Potrebbe essere necessario decomprimere e ricollegare la tua webapp.

Tuttavia, se si desidera disabilitare l'intera sezione di amministrazione, è possibile commentare la richiesta di amministratoreHandler in $ {SOLR_HOME} /project/solr/conf/solrconfig.xml.

2

È possibile proteggere la pagina di amministrazione con una password aggiungendo un vincolo di sicurezza all'applicazione Web Solr.

Snippet per Solr 3,6:

<security-constraint> 
    <!-- This protects your admin interface and grants access to role Solr-Admin --> 
    <web-resource-collection> 
    <web-resource-name>Solr admin</web-resource-name> 
     <!--url-pattern>/admin/*</url-pattern--> 
     <url-pattern>/evu/admin/*</url-pattern> 
     <url-pattern>/webcrawl/admin/*</url-pattern> 
    </web-resource-collection> 
    <auth-constraint> 
     <role-name>Solr-Admin</role-name> 
    </auth-constraint> 
    <user-data-constraint> 
     <transport-guarantee>CONFIDENTIAL</transport-guarantee> 
    </user-data-constraint> 
    </security-constraint> 

    <security-constraint> 
    <!-- This protects your admin interface and grants access to roles Solr-Admin and Solr-Updater --> 
    <web-resource-collection> 
     <web-resource-name>Solr Update</web-resource-name> 
     <url-pattern>/update/*</url-pattern> 
     <url-pattern>/evu/update/*</url-pattern> 
     <url-pattern>/webcrawl/update/*</url-pattern> 
    </web-resource-collection> 
    <auth-constraint> 
     <role-name>Solr-Admin</role-name> 
     <role-name>Solr-Update</role-name> 
    </auth-constraint> 
    <user-data-constraint> 
     <transport-guarantee>CONFIDENTIAL</transport-guarantee> 
    </user-data-constraint> 
    </security-constraint> 

    <security-constraint> 
    <!-- This one is necessary to show the image on the Solr start page --> 
    <web-resource-collection> 
     <web-resource-name>Solr Admin images</web-resource-name> 
     <url-pattern>*.png</url-pattern> 
    </web-resource-collection> 
    <auth-contraint> 
     <role-name>*</role-name> 
    </auth-contraint> 
    </security-constraint> 

    <security-role> 
    <description>The role that is required to administer Solr</description> 
    <role-name>Solr-Admin</role-name> 
    </security-role> 
    <security-role> 
    <description>The role that is required to update the Solr index</description> 
    <role-name>Solr-Update</role-name> 
    </security-role> 

    <login-config> 
    <auth-method>BASIC</auth-method> 
    <realm-name>Solr</realm-name> 
    </login-config> 
</web-app> 

In Solr 4 devi proteggere le seguenti risorse per l'interfaccia di amministrazione:

/admin/* 
/admin.html 
+0

In che file per aggiungere questo snippet? – tasmaniski

+0

Quello sarebbe web.xml. Non sono sicuro della configurazione del molo. – Maddin

-3

Il modo più semplice:

iptables -A INPUT -p tcp --dport 8983 -j DROP

iptables -A INPUT -p tcp -s 127.0.0.1 --database 8983 -j ACCEPT

con questo ordine!

+0

Quando ho provato questo, i miei script del sito non potevano più accedere a Solr - Ho giocato un po 'con iptables provando diversi indirizzi IP e altre cose senza alcun risultato (forse a causa della mia mancanza di conoscenza da parte di esperti su questo). Sto ancora cercando la risposta facile senza fortuna fare molto ... – JxAxMxIxN

+0

Perché l'ordine sbagliato. Qui oneliner: 'iptables -A INPUT -p tcp -s localhost --dport 8983 -j ACCEPT && iptables -A INPUT -p tcp -dport 8983 -j DROP && iptables-save> iptables.rules && iptables-restore hlcs

0

sudo vim /opt/solr-4.8.1/example/etc/jetty.xml cambiamento

<!-- This connector is currently being used for Solr because it 
      showed better performance than nio.SelectChannelConnector 
      for typical Solr requests. --> 
    <Call name="addConnector"> 
     <Arg> 
      <New class="org.eclipse.jetty.server.bio.SocketConnector"> 
      <Set name="host">0.0.0.0</Set> 
      <Set name="port"><SystemProperty name="jetty.port" default="8983"/></Set> 
      <Set name="maxIdleTime">50000</Set> 
      <Set name="lowResourceMaxIdleTime">1500</Set> 
      <Set name="statsOn">false</Set> 
      </New> 
     </Arg> 
    </Call> 

a

<!-- This connector is currently being used for Solr because it 
      showed better performance than nio.SelectChannelConnector 
      for typical Solr requests. --> 
    <Call name="addConnector"> 
     <Arg> 
      <New class="org.eclipse.jetty.server.bio.SocketConnector"> 
      <Set name="host">127.0.0.1</Set> 
      <Set name="port"><SystemProperty name="jetty.port" default="8983"/></Set> 
      <Set name="maxIdleTime">50000</Set> 
      <Set name="lowResourceMaxIdleTime">1500</Set> 
      <Set name="statsOn">false</Set> 
      </New> 
     </Arg> 
    </Call> 

poi servizio sudo solrd restart

Problemi correlati