因为 ProxyPassReverse 将替换您的服务器返回的位置。
在您的情况下,您可以查看示例 1。
示例 1(仅 URL 路径)
Apache2 设置
ProxyPass "/8080" "http://localhost:8080"
ProxyPassReverse "/8080/" "/"
Node.js 设置
const express = require("express");
const app = express()
app.get('/', (req, res) => {
res.json({a: 8080})
})
app.get("/hi", (req, res) => {
res.json({a: "8080hi"})
})
app.get("/redirect", (req, res) => {
res.redirect("/hi")
})
app.listen(8080)
原始位置是“位置:/hi”。
新的是“位置:/8080/hi”。 (/ => /8080/)
这意味着 Apache2 将 Location 值替换为 ProxyPassReverse 设置。
或者您可以使用完整的 FQDN 来执行此操作。
示例 2 (FQDN)
Apache2 设置
ProxyPass "/8080" "http://localhost:8080"
ProxyPassReverse "/8080" "http://localhost:8080"
Node.js 设置
const express = require("express");
const app = express()
app.get('/', (req, res) => {
res.json({a: 8080})
})
app.get("/hi", (req, res) => {
res.json({a: "8080hi"})
})
app.get("/redirect", (req, res) => {
res.setHeader("Location", "http://localhost:8080/hi")
res.send(302)
})
app.listen(8080)