APIM网关将Host标头设置为host:port来调用后端,如下所示:
GET / api /类别HTTP / 1.1
接受语言: en-US,en; q = 0.8,pt; q = 0.6
令牌: 6785ea7b - ####### - ####### - 93f06834660a
接受编码:gzip, deflate,sdch
X-Forwarded-Server:server01
X-Forwarded-For: 172.XX.XXX.XX
用户代理:Mozilla / 5.0(X11; Linux x86_64)
邮递员令牌:ece4261e-d610-655c-f06c-f24a99f007c8
接受: /
X-Forwarded-Host:server01
Cache-Control:no-cache
主持人:api.empresa.net:80
连接:Keep-Alive
这会导致Web应用程序防火墙出现问题,我该如何更改? 环境:RedHat Linux 6.7,APIM 1.9.1
由于
答案 0 :(得分:1)
Host request-header字段指定Internet主机和端口 请求的资源编号,从原始编号获得 用户或引用资源给出的URI。
Host = "Host" ":" host [ ":" port ] ; Section 3.2.2
A"主持人"没有任何尾随端口信息意味着默认值 请求服务的端口(例如," 80"用于HTTP URL)。对于 例如,源服务器上的请求 http://www.w3.org/pub/WWW/适当地包括:
GET /pub/WWW/ HTTP/1.1 Host: www.w3.org
答案 1 :(得分:1)
我知道你的痛苦。我们的负载均衡器遇到了同样的问题。我相信WSO2会为此做出修复。在此期间,您需要在“/ _system / governance / apimgt / customsequences / in”下创建一个自定义的“in”序列,其中包含以下内容:
<sequence xmlns="http://ws.apache.org/ns/synapse" name="remove_port_In">
<property name="REQUEST_HOST_HEADER" value="api.empresa.net" scope="axis2"/>
</sequence>
然后,您可以在发布之前通过发布者应用程序将其与您的API相关联作为入站自定义序列。