web-server – 在生产中保护Apache Solr

前端之家收集整理的这篇文章主要介绍了web-server – 在生产中保护Apache Solr前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在设置Apache Solr 4.1,它将用于索引Web应用程序的数据.只有Web应用程序才能访问Solr.用户和其他客户不会直接与Solr交谈.

确保此类Solr设置的一些最佳实践是什么?

(我们使用Jetty运行Solr)

解决方法

我知道你正在使用Jetty,但我有一个使用Tomcat的方法可以工作,并将在下面解释.

基本上,我已经放弃了尝试理解我认为Java Web应用程序在Jetty和Tomcat中保护自己的过于迟钝的方式.因此,我更愿意让Apache重新成为防御访问的第一道防线. Apache坚固可靠.如果您觉得需要额外的安全性,您可以随时安装ModSecurity等工具,以使其更加安全.

关键是在Apache中创建反向代理设置.将Solr运行的主机的Apache配置代码.我喜欢让它运行一个子目录,因此本例使用/ solr作为ProxyPass和ProxyPassReverse设置的示例.首先是在URL中添加尾部斜杠的设置,因此对http://my.server.is.great/solr的调用将转换为http://my.server.is.great/solr/

# Settings for adding a trailing slash to the URL
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/(solr)$
RewriteRule ^(.*)$http://%{HTTP_HOST}$1/ [R=301,L]

现在有了mod_proxy的东西,可以将Tomcat Web应用程序路由到Apache前端.

# Settings for Solr in Apache
<IfModule mod_proxy.c>

    # Proxy specific settings
    ProxyRequests Off
    ProxyPreserveHost On

    <Proxy *>
        AddDefaultCharset off
        Order deny,allow
        Allow from all
    </Proxy>

    ProxyPass /solr http://localhost:8080/solr/
    ProxyPassReverse /solr http://localhost:8080/solr/

</IfModule>

此时,我将重启Apache,看看是否有效.如果确实如此,一切都好!现在最后一步是进入Tomcat XML文件并通过向连接器添加address =“127.0.0.1”来限制Solr仅响应localhost / 127.0.0.1请求.

<Connector port="8080" protocol="HTTP/1.1"
                       address="127.0.0.1"
                       connectionTimeout="20000"
                       URIEncoding="UTF-8"
                       redirectPort="8443" />

现在这最后一部分?也许这就是你所需要的.也许您只想将该地址=“127.0.0.1”改为需要访问的一台机器的机器IP.但是你再次使用Jetty所以也许有一种相同的方法来限制Jetty中的一个IP?或者你甚至可以在Apache配置中限制通过IP.无论什么效果最好.

猜你在找的HTML相关文章