名为charles的工具中有一个功能,允许您映射远程请求:
http://www.charlesproxy.com/documentation/tools/map-remote/
基本上,它可以将任何请求发送到服务器(即使不是运行它的人),然后向另一台服务器发出新请求,保留路径和查询字符串。然后,来自第二台服务器的响应将覆盖来自第一台服务器的响应。
我只是想知道是否有一个节点模块可以做到这一点。我尝试使用http代理,但我感觉这个map remote工具与代理有点不同,因为似乎您必须拥有两台服务器的代理。
编辑:再次尝试使用http代理节点模块,但似乎无法使其正常工作。这是我的代码:
var http = require('http')
, httpProxy = require('http-proxy');
httpProxy.createServer({
hostnameOnly: true,
router: {
'www.stackoverflow.com': 'localhost:9000',
}
}).listen(80);
// Create your target server
//
http.createServer(function (req, res) {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.write('request successfully proxied!' + '\n' + JSON.stringify(req.headers, true, 2));
res.end();
}).listen(9000);
我的期望是,当我访问www.stackoverflow时。com或www.stackoverflow。com:80,它将改为重定向到我的localhost:9000
您是否已将该代理添加到浏览器配置中?否则,底层操作系统会将您的请求直接路由到www.stackoverflow。com,而您的代理不可能捕捉到这一点。
我用我的解决方案做了这个帕斯特宾:http://pastebin.com/TfG67j1x
将pastebin的内容保存为proxy.js.确保将依赖项安装在与proxy.js文件相同的文件夹中。
运行代理时,它将:
通过代理访问演示目标时,它会将“Ruby”字符串修改为“nodejitsu”,以便于测试。如果您在公司防火墙/代理后面,则此脚本暂时失败。
更新:“已发送邮件头”的问题出现在第32/33行。结果表明,同一连接上发生了多个错误。当第一个错误发生时,将发送头,当第二个错误发生时,已发送头;因此,将引发“headers ready sent”异常,并终止服务器。
使用此修复程序,服务器不再死亡,但仍无法修复错误源,即该节点。JS无法到达您的目标站点。您必须位于另一个代理/防火墙之后,NodeJS需要将HTTP请求转发到另一个代理。如果您通常在浏览器中使用代理连接到Internet,我的解决方案将失败。但是,您没有指定这是一项要求。
您可以通过“我的代理”访问网络中的服务器来验证这一点(通常不需要代理)。
更新2:您不应该尝试直接访问http://localhost:8013
,而是将其设置为浏览器中的代理。请注意您的原始浏览器代理设置(见上文)。然后尝试访问http://localhost:9013
。
不,您要求的确实是一个简单的代理。不,您不必“拥有”两台服务器来运行代理。您只需代理请求,此时您可以随心所欲地修改数据。
您提到的代理模块工作正常,还有许多其他模块。如果您愿意,也可以使用简单的Nginx配置来实现这一点。
我已经设置了一个ec2实例,其中一个java web应用程序运行在tomcat服务器上,另一个aws应用程序负载平衡器将端口80和443定向到ec2实例上的端口8080。 我已更改服务器。tomcat上的xml配置如下 现在我可以连接到“sub.mydomain.com”和“https://sub.mydomain.com”。但是如何将所有“http://sub.mydomain.com”请求重定
httpd是Apache超文本传输协议(HTTP)服务器的主程序。被设计为一个独立运行的后台进程,它会建立一个处理请求的子进程或线程的池。 通常,httpd不应该被直接调用,而应该在类Unix系统中由apachectl调用,在Windows NT/2000/XP/2003中作为服务运行和在Windows 95/98/ME中作为控制台程序运行. 语法 httpd [ -d serverroot ]
我想测试一个连接到Github api的应用程序,下载一些记录并对其进行处理。我想要一个模拟对象,我做了如下操作: 看起来不错吧?我应该在thenReturn中输入什么(它需要HttpResponse,但我不知道如何创建)。谢谢你的回答。如果你有更好的想法,我将不胜感激。 更新:字符串响应是一个示例响应
我需要将文件从远程服务器复制到本地服务器,然后使用JMETER使用SSH SFTP进行尝试。我提供了登录凭据,并在“文件传输”部分中,选择了操作 - PUT源路径 - 远程路径( /ftp / xxx / yyy)目标 - 本地路径。 收到错误为` Java . io . file not found exception:C:\ Apache-jmeter-5 . 1 . 1 \ bin \ FT
注意:我解决了我的问题。然而,它采取了一些渐进的变化。如果你碰巧在这个页面上,请随时查看下面我的github,看看我是如何制作这个应用程序的。 我正在使用http工具包向btc中国发布请求。我想使用他们的交易api。我可以用python很好地做到这一点,但出于某种原因,我一直用clojure和http工具包获得401。我在下面发布了一段代码,这可能表明我没有正确使用http工具包。除此之外,如果您
是否有人将spring webflux与netty(http/2)一起使用? Spring文档说明: 您可以使用配置属性在Spring Boot应用程序中启用HTTP/2支持。此支持取决于所选的Web服务器和应用程序环境,因为JDK8不支持该协议。Spring Boot不支持HTTP/2协议的明文版本h2c。因此您必须先配置SSL。 标志服务器。http2.enabled对我不起作用。 我正在使用