我正在使用名为setHeader的httpd发送请求。
如果我不使用ModProxy,请使用标头名称为getRequestHeader的标头。
但是我需要ProxyPass工作器中的标头信息。
如何让Apache转发ProxyPass中的标头。
我已经为此寻找答案了很长时间,但找不到有效的方法。
我的ProxyPass指令:
<IfModule mod_proxy_fcgi.c>
#No PATH_INFO with mod_proxy_fcgi unless this is set
SetEnvIf Request_URI . proxy-fcgi-pathinfo=1
ProxyPass "/gas30/" "fcgi://192.168.1.5:6394/"
Alias "/gas30" "/opt/fourjs30/gst/gas/bin/fastcgidispatch enablereuse=on"
ProxyPass "/gas31/" "fcgi://192.168.1.5:6395/"
Alias "/gas31" "/opt/fourjs31/gst/gas/bin/fastcgidispatch enablereuse=on"
</IfModule>
我正在使用Apache / 2.4.6(CentOS 7)
预先感谢
Johan
我使用tcpdump显示在侦听端口6380上收到的标头 只是要确保它在那里。
http_auth:Y2FuY3VuQG1ic2JiYW5rLmNvbScgJzExMTExMTExJyAnJDJhJDEyJDJwMlFOMVNZVURldUlpcWw2R3ZWMk83Mi45QUtXSlROcUlnWDRFQVUvZnJ>
那是正确的标题。
我已经尝试了很多方法将其转发到6395端口。 不过,我完全陷入困境。 我尝试的最后一件事是在“位置”下对其进行硬编码。 但我在tcpdump中看不到
<Location /gas31>
Header add http_auth "Y2FuY3VuQG1ic2JiYW5rLmNvbScgJzExMTExMTExJyAnJDJhJDEyJDJwMlFOMVNZVURldUlpcWw2R3ZWMk83Mi45QUtXSlROcUlnWDRFQVUvZnJjU01SZnJNQXVL"
RequestHeader set http_auth "Y2FuY3VuQG1ic2JiYW5rLmNvbScgJzExMTExMTExJyAnJDJhJDEyJDJwMlFOMVNZVURldUlpcWw2R3ZWMk83Mi45QUtXSlROcUlnWDRFQVUvZnJjU01SZnJNQXVL"
Order Deny,Allow
Deny from all
Allow from all
</Location>
我已经到了这一行的结尾,我尝试了所有操作,但无法获取请求标头。 。 我可以将标头放在我发送的JSON消息中,也可以移到nginx。
自从我使用httpd多年以来,我将采用第一种选择。
我看到了这篇文章,但由于声誉而无法添加评论。
这相关吗?
如果在这些地方我应该放置这些说明?
这行似乎保留了Header,原因是我不太了解:
SetEnvIf HTTP_MY_HEADER“(。*)” MY_HEADER = $ 0 我不明白的原因是,我在这里设置了一个Env变量,而不是标题-Env变量会自动变成标题吗?
虽然我可能也必须这样做,但是这是不必要的:
RequestHeader设置HTTP_MY_HEADER“ $ {MY_HEADER} e” 我想这是“有效”的答案,尽管我很想知道为什么...