为http-proxy-middleware指定代理

时间:2019-03-19 11:02:22

标签: node.js proxy fiddler http-proxy-middleware

我有一个用于连接多个微服务的前端的nodeJS项目。当我们进行最终部署时,我们实际上将构建的JS和HTML与后端一起部署在WAR文件中。

但是,为了进行开发,我们使用http-proxy-middleware,因此我们能够在前端进行快速更改和编辑并查看结果。

但是,今天,我希望能够看到连接离开NODE-JS并进入我们的微服务。

具体来说,我想通过fiddler(通常在端口8888上运行的http代理)引导它们。

有人知道这样做吗?

我尝试设置例如以下内容,但不影响传出连接:

npm配置集代理http://localhost:8888

2 个答案:

答案 0 :(得分:1)

npm config set proxy http://localhost:8888用于配置NPM以通过代理下载软件包。

您将需要连接到提琴手的HTTP代理而不是通常的后端,并具有用于代理的相关HTTP标头。

所以请求看起来像

http.get ({
    host: '127.0.0.1',
    port: 8888,
    path: 'http://actual.backend/url'
}, function (response) {
    console.log (response);
});

答案 1 :(得分:0)

好吧,我的问题的答案是use fiddler as a reverse proxy

https://docs.telerik.com/fiddler/Configure-Fiddler/Tasks/UseFiddlerAsReverseProxy

我偶然碰到了它。我以为也许我无法拦截所有请求,但可以将端点设置为提琴手。

我这样做了,看到Fiddler Echo Service的提琴手对此做出了回应。

它基本上显示类似于以下内容的页面:

Fiddler Echo Service

PUT /abc-service/initialize HTTP/1.1
accept-language: en-AU,en;q=0.9,el;q=0.8,en-NZ;q=0.7,en-US;q=0.6,en-GB;q=0.5
accept-encoding: gzip, deflate, br
accept: */*
postman-token: 0466cca5-21f9-67ab-be05-5227ef667fe4
user-agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36
origin: chrome-extension://fhbjgbiflinjbdggehcddcbncdddomop
cache-control: no-cache
content-length: 0
connection: close
host: localhost:8889   
X-Tenant-Id: abc  
X-Forwarded-Proto: http
X-Forwarded-Force-Http-Protocol: true
X-Forwarded-Prefix: abc-service

This page returned a HTTP/200 response 
Originating Process Information: node:15044

--------------------------------------------------------------------------------
•To configure Fiddler as a reverse proxy instead of seeing this page, see Reverse Proxy Setup ( https://docs.telerik.com/fiddler/Configure-Fiddler/Tasks/UseFiddlerAsReverseProxy )
•You can download the FiddlerRoot certificate