我想使用 NiFi 来拥有一个 HTTP 侦听器,我会将其用作外部 API 的回调 URL。
所以,我了解了
ListenHTTP
和 HandleHttpRequest
,它们充当 HTTP 服务器,持续监听定义的路径。 NiFi 服务器在 Docker 上运行并且设置是安全的(HTTPS
)并且可以通过 https://nifidev.xyz.com/nifi/
访问 UI
现在我设置
HandleHttpRequest
到端口 443
和基本路径到 /callback
当我尝试使用 docker 容器中的
POST
执行一些 cURL
命令时,会生成一个流文件,其中包含传递的详细信息
curl --location 'http://nifidev:443/callback' --header 'Content-Type: text/plain' --data 'foo=bar
userid=12345
startdate=1530576000
enddate=1530698753'
注意:
是 cURL 命令中使用的容器名称nifidev
现在,当我尝试通过邮递员执行相同操作时,
POST
调用失败
POST请求:https://nifidev.xyz.com:443/callback
<h1>System Error</h1>
<h2>The request contained an invalid host header [<code>nifi-dev.lih.lu:443</code>] in the request
[<code>/callback</code>]. Check for request manipulation or third-party intercept.</h2>
<h3>Valid host headers are [<code>empty</code>] or: <br/><code>
<ul><li>127.0.0.1</li>
<li>127.0.0.1:8443</li>
<li>localhost</li>
<li>localhost:8443</li>
<li>[::1]</li>
<li>[::1]:8443</li>
<li>nifidev</li>
<li>nifidev:8443</li>
<li>10.0.4.11</li>
<li>10.0.4.11:8443</li>
<li>nifidev.xyz.com</li>
</ul>
</code></h3>
我也试过打电话
POST /callback HTTP/1.1 Host: nifidev.xyz.com
响应 -> You may have mistyped... but we'll try to redirect you in 5 seconds.
是否可以从 Internet 访问 HTTP 服务器,我是否需要添加任何其他配置以使其可访问。整个设置都在 Docker 上,所以它与要公开访问的容器有关吗?