[英]NGINX reverse proxy for multiple locations not working
我正在嘗試在 PM2 和使用 NGINX 的反向代理的幫助下在 EC2 實例中運行兩個 express.js API。 請在下面找到 NGINX 配置,
我的目的是在以下路線下運行 2 個 API:
/
反向代理localhost:3000
/local
反向代理localhost:3001
為了讓事情更清楚,我需要包含/local
或/local/
的 URL 來代理在端口3001
上運行的 API。 但是,當我嘗試點擊https://example.com/local
或https://example.com/local/
,響應是從在端口 3000 中運行的 API 而不是預期的代理接收的。
這是在瀏覽器中嘗試時返回的響應:
需要的解決方案是成功配置 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.