好的..这很奇怪,但我需要替换 X-forwarded-for 值。
我们正在使用 SAP B1,出于各种原因,它需要 x-forwarded-for 仅包含一个字符串"https://sap.domain.tld:443"
,并且只包含该值。没有其他主机,也没有逗号。就是这样。
现在,我正在使用各种代理和 cloudflare,因此在 X-forwarded-for 中添加了一些值,我必须删除这些值才能访问 SAP B1 Web Access。我需要删除所有这些值。
下面是我在 apache 中的配置:
SSLEngine On
SSLCertificateFile /etc/ssl/crt/sap.crt
SSLCertificateKeyFile /etc/ssl/private/4096.key
SSLCACertificateFile /etc/ssl/ca/ca.crt
SSLProxyEngine On
SSLProxyCheckPeerCN off
SSLProxyVerify none
SSLProxyCheckPeerName off
SSLProtocol -all +TLSv1.2 +TLSv1.1 +TLSv1
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA$
ProxyPreserveHost On
ProxyVia full
ProxyPass / https://10.1.1.1:8100/
ProxyPassReverse / https://10.1.1.1:8100/
ProxyAddHeaders off
RequestHeader unset X-forwarded-for
RequestHeader set X-Forwarded-For "https://sap.domain.tld:443"
我已经添加了ProxyAddHeaders off
,但是 apache 仍然添加新的 X-Forwarded-For。我该如何将它们全部删除?
答案1
我最近遇到了类似的问题。对我来说,事实证明它在上下文ProxyAddHeaders off
中不起作用<VirtualHost>
(尽管有文档)。将指令放入上下文后,<Location>
Apache 停止X-Forwarded-*
按预期添加标头。
您的可能看起来如下...
<Location />
...
ProxyPass https://10.1.1.1:8100/
ProxyPassReverse https://10.1.1.1:8100/
ProxyAddHeaders off
RequestHeader unset X-forwarded-for
RequestHeader set X-Forwarded-For "https://sap.domain.tld:443"
</Location>