[英]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.