gpt4 book ai didi

solr - 限制 Jetty 和 Solr 的 IP 地址

转载 作者:行者123 更新时间:2023-12-03 12:27:39 29 4
gpt4 key购买 nike

我正在使用 Jetty 设置 Solr。我想限制对几个 IP 地址的访问。使用 Jetty 可以做到这一点似乎并不明显。有可能吗,如果有,怎么做?

最佳答案

Solr 4.2.1 使用 Jetty 8.1.8。 Jetty 8(如 jonas789 所述)不支持 .htaccess。相反,它使用 IPAccessHandler,它没有很好的文档可用。我不得不玩它很多才能让它工作,所以我在这里发布了一个更新的解决方案。

IPAccessHandler管理黑名单和白名单,接受任意范围的 IP,并支持将特定的 URI 路径附加到每个白/黑名单条目。 IPAccessHandler 还继承了 HandlerWrapper,这很重要。

solr 应用程序仍然存在于 WebAppContext(如 Lyndsay 的解决方案中)中,但 WebAppContext 现在由 ContextHandler 管理,后者驻留在 ContextHandlerCollection 中,占据服务器中的第一个处理程序槽。为了阻止来自错误 IP 的请求到达应用程序,我们需要将它包装在沿该路径某处的 IPAccessHandler 中。如果 IPAccessHandler 位于错误的位置,它的行为会很奇怪:我尝试在上下文处理程序之前插入它,它给错误的机器提供了 403 Forbidden,抛出 NullPointerException 大发脾气,没有额外的错误消息,各种各样的废话。我最终通过在服务器级别包装 ContextHandlerCollection 本身使其工作。

转至 etc/jetty.xml并滚动到处理程序部分。然后将现有的 ContextHandlerCollection 项包装如下:

<!-- =========================================================== -->
<!-- Set handler Collection Structure -->
<!-- =========================================================== -->
<Set name="handler">
<New id="Handlers" class="org.eclipse.jetty.server.handler.HandlerCollection">
<Set name="handlers">
<Array type="org.eclipse.jetty.server.Handler">
<Item>

<!-- here begins the new stuff -->
<New class="org.eclipse.jetty.server.handler.IPAccessHandler">
<Call name="addWhite">
<Arg>xxx.xxx.xxx.xxx</Arg>
</Call>
<Set name="handler">
<!-- here's where you put what was there before: -->
<New id="Contexts" class="org.eclipse.jetty.server.handler.ContextHandlerCollection"/>
</Set>
</New>
<!-- here ends the new stuff -->

</Item>
<Item>
<New id="DefaultHandler" class="org.eclipse.jetty.server.handler.DefaultHandler"/>
</Item>
<Item>
<New id="RequestLog" class="org.eclipse.jetty.server.handler.RequestLogHandler"/>
</Item>
</Array>
</Set>
</New>
</Set>

资源:
  • http://comments.gmane.org/gmane.comp.java.jetty.support/6066
  • http://wiki.eclipse.org/Jetty#Configuration_Reference
  • http://wiki.eclipse.org/Jetty/Reference/jetty.xml_syntax
  • http://download.eclipse.org/jetty/stable-8/apidocs/org/eclipse/jetty/server/handler/IPAccessHandler.html
  • 关于solr - 限制 Jetty 和 Solr 的 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8924102/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com