
确保此类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 URLRewriteEngine OnRewriteCond %{REQUEST_URI} ^/(solr)$RewriteRule ^(.*)$http://%{http_HOST}/ [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.无论什么效果最好.
总结以上是内存溢出为你收集整理的web-server – 在生产中保护Apache Solr全部内容,希望文章能够帮你解决web-server – 在生产中保护Apache Solr所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)