反向代理服务器后面的静态资源

反向代理服务器后面的静态资源

两个 localhost Web 服务器是单独开发的,彼此之间没有相互了解,也不需要代理服务器。均使用 NodeJS 和 Express.js 设置

app.use(express.static(__dirname + '/frontend'));

从这两个服务器我有两组静态资源,例如在 HTML 文件中找到的

<script type="text/javascript" src="js/index.js"></script>

现在我必须在设置代理服务器www.proxy.com。两个 Web 服务器可以通过

  1. www.proxy.com/web1->localhost:4000
  2. www.proxy.com/web2->localhost:4001

这是使用 NodeJS 和 http-proxy 完成的:

app.all("/web1*", (req, res) => {
    req.url = req.url.replace(/\/web1/g, "");
    apiProxy.web(req, res, {target: "http://localhost:4000"});
});

app.all("/web2*", (req, res) => {
    req.url = req.url.replace(/\/web2/g, "");
    apiProxy.web(req, res, {target: "http://localhost:4001"});
});

为了正确加载静态资源,最困难的方法是将其全部更改以匹配新的 url 分配,例如

<script type="text/javascript" src="web1/js/index.js"></script>

但是有没有更好的解决方案,不需要改变所有静态资源的url呢?

相关内容