webmethods - webmethods 是 pub.client http 不遵循 http 客户端标准吗?
问题描述
问题: Webmethods HTTP 客户端在我的配置有多个虚拟主机的 Apache 服务器上调用了错误的端点,基于 DNS。
我认为正在发生的事情:我认为 Webmethods HTTP 客户端可能正在查找 IP 地址并使用它来执行 HTTP 操作而不是使用 DNS 名称,这导致 Apache 服务器将其识别为对主虚拟服务器的请求,不是想要的。
问题:那么,如何让 webmethods 使用 DNS 名称而不是 IP?我关于 Webmethods HTTP 客户端的理论正确吗?据我所知,这是一种非常不标准的 HTTP 客户端设计方法。
以下是它的配置方式以帮助您更好地理解:
Apache ->
host.example.com => /var/www/host/html
host2.example.com => /var/www/host2/html
curl -v http://host.example.com
并curl -v http://host2.example.com
从各自的目录中适当地返回文档。
配置pub.client:http
withhttp://host2.example.com
会导致 webmethods IS 服务器请求http://host.example.com
文档(显然会导致 404:未找到)。
请注意,系统显然不是返回 HTML 之类的文档,而是提供动态内容。
解决方案
Progman 的评论是这里的线索 - 基本上为了指示 Apache 调用您的虚拟服务器,Host
标头必须提供预期值。在我的例子中,那将是Host: host2.example.com
. 我正在将 webmethods 复制到标题上,就像我从 curl 发布它们一样,它正在发送Host: localhost:5555
到我的代理服务器。我只是创建了一个管道 Map 操作并对其进行了硬编码,现在它工作正常。
对我来说奇怪的是 pub.client:http 没有根据“url”值为我自动设置主机头,这是我所期望的。
推荐阅读
- python - Python - UDP 屏幕共享
- html - 如何在 Asp.net 核心中的 Bootstrap datepicker 上设置最小日期?
- logging - 如何在 Tomcat 9 中查看完整的堆栈跟踪?
- python - 如果日期在被评估的当前行之前,则分组依据中的行计数
- android - 使用 Jetpack Compose 连续绘制两个按钮
- java - 以一种方式重新排列整数数组中的元素 - 您首先替换然后将替换的整数移动到数组的第一部分
- python - 如果列不是所有时间戳,如何用字符串替换数据框中的时间戳?
- http - Cache-Control:如果 Browser 和 Client 指定一个 Cache-Control 标头会发生什么?
- python - Python 日志记录模块在 Sagemaker 中不起作用
- javascript - Knockout Computed Observable 读取存储值后未更新