Apache 设置HTTP代理以插入标头

Apache 设置HTTP代理以插入标头,apache,proxy,http-headers,proxypass,Apache,Proxy,Http Headers,Proxypass,我需要测试与我不想修改的客户端的一些HTTP交互。我需要测试的是当客户端的请求包含某个静态头时服务器的行为 我认为运行此测试最简单的方法是设置一个HTTP代理,在每个请求上插入头。最简单的设置方法是什么?我会试试。事实上,最好是在那里嵌入一种脚本语言。。。听起来这是一份完美的工作,尤其是在看到它在中的工作效果之后,我的同事们已经为此使用了(“用于攻击和测试web应用程序的交互式HTTP/S代理服务器”)。您还可以使用(“HTTP调试代理”)。使用并设置所需的标头,等等。我在开发环境中通过将端口8

我需要测试与我不想修改的客户端的一些HTTP交互。我需要测试的是当客户端的请求包含某个静态头时服务器的行为


我认为运行此测试最简单的方法是设置一个HTTP代理,在每个请求上插入头。最简单的设置方法是什么?

我会试试。事实上,最好是在那里嵌入一种脚本语言。。。听起来这是一份完美的工作,尤其是在看到它在

中的工作效果之后,我的同事们已经为此使用了(“用于攻击和测试web应用程序的交互式HTTP/S代理服务器”)。您还可以使用(“HTTP调试代理”)。

使用并设置所需的标头,等等。

我在开发环境中通过将端口80上的Apache配置为端口8080上的应用程序服务器的代理,并使用以下Apache配置执行类似操作:

NameVirtualHost *
<VirtualHost *>
   <Proxy http://127.0.0.1:8080/*>
      Allow from all
   </Proxy>
   <LocationMatch "/myapp">
      ProxyPass http://127.0.0.1:8080/myapp
      ProxyPassReverse http://127.0.0.1:8080/myapp
      Header add myheader "myvalue"
      RequestHeader set myheader "myvalue"   
   </LocationMatch>
</VirtualHost>
NameVirtualHost*
通融
ProxyPasshttp://127.0.0.1:8080/myapp
ProxyPassReversehttp://127.0.0.1:8080/myapp
标题添加myheader“myvalue”
RequestHeader设置myheader“myvalue”
请参阅和文档


这会将头myheader:myvalue添加到发送到应用程序服务器的请求中。

您还可以安装非常容易安装的Fiddler()(例如,比Apache更容易)

启动后,它将自己注册为系统代理。然后打开“规则”菜单,选择“自定义规则…”打开一个JScript文件,允许您自定义请求

要添加自定义标题,只需在
OnBeforeRequest
函数中添加一行即可:

oSession.oRequest.headers.Add("MyHeader", "MyValue");

我没有使用代理,而是使用Firefox插件插入标题(在我的例子中,使用单点登录假装登录,以便我可以作为不同的人进行测试)。

如果您的系统上有ruby,那么使用Sinatra的小型ruby代理如何(确保安装Sinatra Gem)。这应该比设置apache更容易。可以找到代码

它还将myheader:myvalue添加到响应标题中。Apache mod_headers上的完整文档:@Fred:那么我们如何限制这些头只出现在代理请求中?Well Header添加到响应中,RequestHeader添加到代理后面的服务器请求中。我这样做是为了确保settings.xml查询永远不会被其他代理缓存,我做到了:setenif Request\u URI“\settings.xml$”object\u is\u settings\u xml Header set Cache Control“无缓存,无存储”env=object\u is\u settings\u xml Header set Expires“Thu,1970年1月1日00:00:00 GMT”env=object\u is\u settings\u xml Header set Pragma“无缓存”env=object\u是\u settings\u xml如果您得到一个关于
RequestHeader
无法识别的错误,请确保启用了
mod\u headers
,例如
a2enmod headers
(然后重新加载Apache).Afaik这个问题不是针对firefox的。@peterh不,不是,但是如果你能灵活地使用什么浏览器,那么在firefox中添加插件要比设置Apache实例容易得多。