本文介绍了多个位置的Nginx反向代理不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试使用PM2在EC2实例中运行两个exts.js API,并使用Nginx运行反向代理。请找到下面的Nginx配置,
NGINX config for the locations
我的意图是在以下路线下运行这两个API:
/
反向代理localhost:3000
/local
反向代理localhost:3001
为了更清楚,我需要包含/local
或/local/
的URL来代理端口3001
上运行的API。但是,当我尝试点击https://example.com/local
或https://example.com/local/
时,收到的响应来自在端口3000中运行的API,而不是预期的代理。
这是在浏览器中尝试时返回的响应:
解决方案是成功配置两个接口,分别消费来自/
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反向代理不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!