gpt4 book ai didi

docker - Apache Nutch 不公开其 API

转载 作者:行者123 更新时间:2023-12-04 14:56:09 25 4
gpt4 key购买 nike

我正在尝试使用 Apache Nutch 1.x Rest API。我使用 docker images 来设置 Nutch 和 Solr。您可以在 here 中查看演示存储库

Apache Nutch 使用 Solr 作为其依赖项。 Solr 工作得很好,我可以在 localhost:8983 访问它的 GUI .

但是,我无法通过 localhost:8081 访问 Apache Nutch 的 API .问题从这里开始。 Apache Nutch 1.X RESTAPI doc表明我可以像这样启动服务器 2. :~$ bin/nutch startserver -port <port_number> [If the port option is not mentioned then by default the server starts on port 8081]

我在 docker-compose.yml 中做的事情文件。我还将端口暴露给外部。

    ports:
- "8080:8080"
- "8081:8081"

但我无法从我的计算机上成功调用 API。

其余的 API 文档说如果我向 /admin 发送一个获取请求端点,我会得到响应。

GET /admin

当我使用 Postman 或浏览器尝试此操作时,它无法连接到服务器并返回 500 错误。

但是,当我使用 docker exec -it 进入容器时并尝试 curl localhost:8081/admin ,我得到了正确的回应。因此,在容器内,API 已启动并运行,但不会暴露给外部。

在我的一次试用中,我在另一个容器中添加了一个前端应用程序,并将其余请求发送到 Solr 和 Nutch 容器。 Solr 成功了,Nutch 失败了 500。这告诉我 Nutch 容器不仅无法访问外部世界,而且无法访问同一网络内的容器。

知道如何解决这个问题吗?

最佳答案

nutch 默认只回复来自 localhost 的请求:

bash-5.1# /root/nutch/bin/nutch startserver -help
usage: NutchServer [-help] [-host <host>] [-port <port>]
-help Show this help
-host <host> The host to bind the Nutch Server to. Default is
localhost.

因此您需要使用 -host 0.0.0.0 启动它,以便能够从主机或其他容器访问它:

services:
nutch:
image: 'apache/nutch:latest'
command: '/root/nutch/bin/nutch startserver -port 8081 -host 0.0.0.0'

关于docker - Apache Nutch 不公开其 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67949442/

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