簡體   English   中英

多個位置的 NGINX 反向代理不起作用

[英]NGINX reverse proxy for multiple locations not working

我正在嘗試在 PM2 和使用 NGINX 的反向代理的幫助下在 EC2 實例中運行兩個 express.js API。 請在下面找到 NGINX 配置,

位置的 NGINX 配置

我的目的是在以下路線下運行 2 個 API:

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

為了讓事情更清楚,我需要包含/local/local/的 URL 來代理在端口3001上運行的 API。 但是,當我嘗試點擊https://example.com/localhttps://example.com/local/ ,響應是從在端口 3000 中運行的 API 而不是預期的代理接收的。

這是在瀏覽器中嘗試時返回的響應:

Safari 截圖

需要的解決方案是成功配置 2 個 API 以分別使用來自/ aka 根域和/local域的請求。 但是這兩個請求都轉到第一個請求。

附注。 我還被告知了一個技巧 - 嘗試在配置文件中切換位置位置(即首先保持/local位置塊,然后是/塊),但仍然沒有運氣 - 相同的行為。

反向代理可以很好地將請求重定向到正確的服務器,但是在“/local”上運行的服務器會轉發包含“/local”的請求。 所以那里的快遞應用程序在路由中尋找 /local ,但我發現它沒有配置。 所以有這樣的事情。

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

只需確保為來自 nginx 的“/local”快速應用服務器中的所有路由添加前綴“/local”

“PS。我還被告知了一個技巧 - 嘗試在配置文件中切換位置位置(即首先保持 /local 位置塊,然后是 / 塊),仍然沒有運氣 - 相同的行為。”

以上將是正確的配置,因為 nginx 將匹配並將請求重定向到第一個適用的塊。 因此,如果 '/' 保留在 '/local' 之前,則所有請求都將被重定向到第一個 express 應用程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM