问题标签 [http-proxy-middleware]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2226 浏览

javascript - Express、http-proxy-middleware 和 net::ERR_CONNECTION_REFUSED

我一直在尝试调试一个使用 http-proxy-middleware 将请求转发到另一个后端服务的 Express 应用程序的问题。有一个第三方应用程序通过发出一个在它发送的 URL 中显式使用 IP 地址的请求来调用我的服务器。在我的开发机器上本地运行时,它使用机器的本地 IP 地址(不是 localhost 或环回 127.0.0.1)。

我已经将我的服务器剥离到绝对最小值,并且我正在代理一个只响应空 JSON 对象的服务。因此,所有其他因素都已被删除。它只是一个简单的快速应用程序和代理。

服务器

我的应用程序启动并显示消息

'现在在端口上运行:4000'

我启动浏览器并发送以下内容:

并得到

到目前为止,这绝对是好的和预期的答案。然后我可以切换到使用环回 IP 地址

当我输入

我明白了

但是当我使用

我什么也没返回,Chrome 网络选项卡显示以下错误

并且 chrome 显示标准无法连接消息。

我已经检查了本地机器的 IP 地址及其正确性

它与“网络实用程序”告诉我的相同

并检查终端中的地址给出:

第三方软件也会导致同样的 net::ERR_CONNECTION_REFUSED 发生(如您所料),但由于我已经完成了将其与我的开发集成的工作,我需要找到解决这个问题的解决方案,即直接通过 IP 调用而不是本地主机或 127.0.0.1。

0 投票
1 回答
352 浏览

angular - Browser-sync&lite-server: http-proxy-middleware 拦截不存在的 url

我在 angular2 应用程序中有以下路由:

最近我不得不添加bs-config.js以下内容:

一切正常,除了访问 404 页面,即如果用户输入了错误的链接,我只会看到“无法获取 /url”并且日志中没有任何有趣的内容。如果我只删除这三行:

它再次开始工作,我在http://myapp/some/broken/url上获得 404 页面。

但我需要后端相关内容的代理。为什么它会干扰常规的 api 路径,即使它应该只代理 'api' 之类的 url?

PS我正在使用:

0 投票
0 回答
717 浏览

node.js - 带有 lite-server 和 http-proxy-middleware 的 websockets

在我的开发环境中,我必须代理请求以及到相应后端服务的 websocket 连接。为此,我使用lite-serverhttp-proxy-middleware

我的 lite 服务器配置文件如下所示:

但是,我总是在控制台中收到此错误:

在 lite-server 的控制台输出中,我执行以下条目:

当我看到控制台输出时,我什至看到连接通过了我的节点端点。端点实现如下:

此错误的原因可能是什么?我的配置有问题吗?

0 投票
1 回答
1357 浏览

razor - 使用简单的 vue.js/webpack 设置,如何配置开发服务器以代理除了一些 .js 和 .vue 文件之外的所有内容?

因此,网站当前设置的一些快速背景:

我公司的网站目前没有 CMS。所有页面都是通过 CMS 生成和路由的,因此任何地方都没有 .html 文件。这一切都是通过 razor (.cshtml) 生成的,CMS 作为后端/数据存储,路由是通过 CMS 处理的。

如果由我决定,我会重写整个内容,但我没有那种奢侈。我正在尽我所能用 Vue.js + webpack 前端重写网站,并随着时间的推移使用比目前实施的更现代的技术慢慢重建这个网站。

但是,我在使用当前配置设置 Webpack 的开发服务器时遇到了问题。

我想我知道问题出在哪里,但是我很难理解 http-proxy-middleware 的配置设置。

我相信我目前设置所有内容的方式,开发服务器正在代理所有内容 - 因此没有获取我对我修改的 .vue/.js 文件所做的任何更改(通过热重载)。

不幸的是,我必须代理网站的大部分内容(页面 [.cshtml 文件]、遗留脚本、各种 API 等),但是我不想代理我的 .js 文件和 .vue 文件(你可以假设任何我的在 /dist/ 或 /src/ 中。其他一切都是旧站点,必须通过“my.server”代理。

此外,我通过 vue cli 的 webpack-simple 配置将其设置为快速测试 - 但是如果需要,我也可以通过非简单变体进行设置。我从“-simple”开始到“KISS”(保持简单愚蠢),然后根据需要慢慢增加复杂性。

这是我目前的 webpack.config.js 文件:

据我所知,问题在于代理:

显然“/”是针对所有内容的,但是虽然我可以找到很多关于如何代理特定部分而不是其他任何内容的示例,但我需要相反的内容。我需要代理除 /dist/ 和 /src/ 之外的所有内容。任何帮助将不胜感激 - 谁知道,我可能会离开这里,这甚至不是我的问题。

不过,最终的问题是,当我运行开发服务器时,如果我设置了代理,则站点上的所有内容都会运行,除了我的 .vue 文件 - 如果我不代理服务器,除了我的 .vue 文件之外什么都不会运行。因此,理所当然地,代理只需要应用于遗留部分而不是 vue 部分 - 但如果我偏离基础,那是最终问题,我愿意接受任何类型的解决方案。

提前感谢任何人可以提供的任何见解!

0 投票
0 回答
281 浏览

webpack - 坐在 http 代理后面时设置 Webpack Browsersync 代理

我想设置一个 browsersync 代理,以便将 CSS 和 Javascript 注入任意网站。

但是,我开始使用 browsersync 创建一个简单的代理,试图为我提供我的 _custom.css 文件。

当我直接连接到网络时,这很好用。现在我的问题是,在某些情况下,我在网络后面有一个 http 代理。

通过一些研究我发现,我应该使用 browsersync 选项“中间件”。最后我扩展了我的配置:

但是,它没有用,我不知道问题出在哪里。有时我会得到一个带有无限循环的空白页面。有时浏览器会在代理错误页面停止。

有人能帮我吗?

0 投票
3 回答
11629 浏览

javascript - 您如何配置 Webpack 开发服务器以服务特定文件夹,同时通过不同的服务器运行站点的其余部分?

一些快速背景:

我公司的网站运行一个 CMS,CMS 处理所有路由。没有 html 文件,只有 razor 文件 (.cshtml)。虽然从头开始重做网站是我更愿意做的事情,但这不是一个选择,所以我试图通过将 vue.js 与 webpack 开发工作流逐页集成来慢慢地使网站现代化基础。

我花了相当多的时间设置 webpack 以允许它只处理在 /dist/ 文件夹中找到的文件 - 其他所有内容都通过http://my.server/ 提供并由 CMS 和后端处理。

通过反复试验,我设法在 /dist/ 文件夹中获取 webpack-dev-server 服务文件,同时允许服务器的其余部分提供其他所有服务(通过http://my.server/)。不幸的是,这仅在 webpack-dev-server 部分的文件路径专门引用“ http://localhost:8080/ ”时才有效,这显然是不可接受的。

开发环境代码必须与生产环境代码一模一样,因此<script src="http://localhost:8080/dist/build.js"></script>根本无法接受。

但是,如果我只是简单地编写<script src="/dist/build.js"></script>服务器解决此问题,<script src="http://my.server/dist/build.js"></script>这显然是不正确的并导致 404(因为这些文件仅从开发服务器提供)。

我的问题是,“如何配置 webpack-dev-server 以从其自身提供 /dist/ 文件夹中的所有内容,同时允许通过“ http://my.server ”提供网站上的所有其他内容?

这是我的 webpack.config.js 文件供参考:

虽然可能没有必要回答这个问题,但如果您想了解更多背景知识,我最初的问题(以及该问题的解决方案)位于此处: 使用简单的 vue.js/webpack 设置,如何配置开发服务器以代理所有内容除了一些 .js 和 .vue 文件?

0 投票
1 回答
308 浏览

angularjs - Angular 2.0 服务调用不通过 h​​ttp-proxy-middleware

我有一个 Angular 2.0 应用程序,最近我添加了带有以下 bs-config.js 的 http-proxy-middleware:

然后我有这样的服务:

当我通过它启动我的应用程序时,会启动npm startbs-config.js 代理设置,我会看到以下输出:

所以看起来 HPM 代理正在做正确的翻译,但在下面的行中,我在来自 WorkLocationService 调用的 GET 上收到 404 错误。如果我的服务看起来配置正确,为什么它不能通过代理?我错过了什么吗?

0 投票
1 回答
3261 浏览

node.js - 如何在没有路由的情况下在 Express 上运行多个应用程序?

我有 2 个应用程序希望添加到我的个人资料网站,这本身就是一个快速应用程序。

我想在/projects我们可以拥有的路线localhost/projects/app1下运行这些应用程序localhost/projects/app2

我希望每个应用程序的所有子路由都在各自的路由上进行处理,例如路由/projects/app1/signup在成功后重定向 POST到仪表板,但现在我需要确保这不会重定向到localhost/dashboard而是localhost/projects/app1/dashboard

我知道路由,我也在 App1 上使用它,即

我想实现这样的目标

0 投票
1 回答
1700 浏览

node.js - 代理不为获取请求服务:http-proxy-middleware

我正在使用 http-proxy-middleware 对应用程序进行反向代理,以避免在开发过程中出现 CORS。

以下是正在使用的 http-proxy-middleware 的设置。我得到了除GET之外的每种方法的响应。

设置 :

路径:服务器/index.js

如果我在这里做错了什么,请告诉我。

0 投票
3 回答
1073 浏览

python - Scrapy 在启动时不加载 HttpProxyMiddleware

我创建了一个新项目如下

并更改 settings.py 如下:

如你所见,我设置

但是现在,当我运行蜘蛛时,scrapy crawl test1我得到以下输出:

如您所见,未加载 HttpProxyMiddleware。

为什么HttpProxyMiddleware不加载?

编辑:我已经安装了scrapy 1.1.1