
好吧..這很奇怪,但我需要取代 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>