本文介绍了多个位置的Nginx反向代理不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用PM2在EC2实例中运行两个exts.js API,并使用Nginx运行反向代理。请找到下面的Nginx配置,

NGINX config for the locations

我的意图是在以下路线下运行这两个API:

  1. /反向代理localhost:3000
  2. /local反向代理localhost:3001

为了更清楚,我需要包含/local/local/的URL来代理端口3001上运行的API。但是,当我尝试点击https://example.com/localhttps://example.com/local/时,收到的响应来自在端口3000中运行的API,而不是预期的代理。

这是在浏览器中尝试时返回的响应:

Safari screenshot

解决方案是成功配置两个接口,分别消费来自/Ak根域和/local域的请求。但这两个请求都转到第一个请求。

PS。我还得到了一个技巧-尝试在配置文件中切换位置(即首先保持/local位置块,然后是/块),但仍然没有运气-相同的行为。

本地

反向代理可以很好地将请求重定向到正确的服务器,但在‘/推荐答案’上运行的反向代理会收到包含‘/local’的请求转发。所以这里的Express应用程序在路线中查找/local,但我发现这是没有配置的。那就来点这样的东西吧。

app.get('/local', (req, res) => {
  res.send('Hello World2!')
})

只需确保将所有路线的前缀‘/local’添加到来自nginx的‘/local’处

&PS。我还被建议尝试在配置文件中切换位置位置(即首先保持/LOCAL位置块,然后是/块),但仍然没有运气-同样的行为。上面的配置将是正确的,因为nginx将匹配并将请求重定向到第一个适用的块。因此,如果‘/’位于‘/local’之前,所有请求都将被重定向到第一个Express应用。

这篇关于多个位置的Nginx反向代理不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-24 06:08