【问题标题】:Injecting reverse proxy HTTP headers into Express.js app将反向代理 HTTP 标头注入 Express.js 应用程序
【发布时间】:2014-11-25 17:35:15
【问题描述】:

我的 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 推送的标头......我该如何让它工作?

【问题讨论】:

    标签: apache express http-headers relative-path reverse-proxy


    【解决方案1】:

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

    您需要添加一个请求标头,以便您的下游应用可以访问它,因此您需要像这样使用RequestHeader 指令:

    RequestHeader set X-Script-Name "/app"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-31
      • 1970-01-01
      • 2015-11-15
      • 1970-01-01
      • 2016-03-18
      • 2014-01-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多