繁体   English   中英

将反向代理HTTP标头注入Express.js应用

[英]Injecting reverse proxy HTTP headers into Express.js app

我的Express.js应用程序使用绝对路径(例如/bootstrap/css/bootstrap.css等)。当我在Apache的域根目录中反向代理此文件时,它可以正常工作。 但是,如果我在其他任何路径上对其进行RP,则该应用程序的路径都无法解析。 例如,如果我在/app进行RP,则该应用将尝试获取/bootstrap/css/bootstrap.css ,而应该获取/app/bootstrap/css/bootstrap.css等。

为了解决此问题,我将Apache配置将X-Script-Name标头设置为/app

Header add "X-Script-Name" /app

我希望然后将其注入Express提供的前端代码中。 例如,代替:

<script src='/assets/something.js'></script>

...我们将类似于:

<script src='${X-Script-Name}/assets/something.js'></script>

我遇到的问题是在Express中获取X-Script-Name值。 我以为它将在路由器的req.headers ,但这只是Express推送的标题...我如何req.headers工作?

使用普通Header将设置响应标头。

您需要添加一个请求标头,以便下游应用程序可以访问它,因此您需要使用RequestHeader指令,如下所示:

RequestHeader set X-Script-Name "/app"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM