筛选HTTP标头并将它们在正文中发布到下游目标

时间:2018-11-11 09:33:36

标签: typescript http nginx http-headers

首先,这不是我试图从XmlHttpRequest等获取标头的问题。我的解决方案也有独特的元素,这意味着我无法将服务器端页面放在我的解决方案的前面。

基本上,我的解决方案的方框图如下:

enter image description here

我想基本上将HTTP请求的标头嗅探到NGINX服务器,然后将它们发送到NGINX的./index.html路由,以便可以在Angular应用程序的TypeScript代码中获得它们。然后将它们用于对我的REST服务的一些初始调用。

目前,我的nginx-custom.conf如下:

server {
  listen 80;
  location / {
    root /usr/share/nginx/html;
    index index.html index.htm;
    try_files $uri $uri/ /index.html =404;
  }
}

enter image description here

我不能多次从WebSeal进行呼叫,因此本质上我在问,如何提取NGINX中的标头,然后在后续代理/传递到当前当前根目录时使用它。

1 个答案:

答案 0 :(得分:0)

好吧,nginx不可能设置请求标头并将其传递给您的angularjs应用程序。

您可以做的是将nginx上的请求转发到后端服务器,您可以在其中存储这些标头并进行管理。

除了您还创建一个镜像请求并将其转发到后端服务器以存储标头之外,您的正常请求在此正常工作。

示例-与此^/my.url正则表达式匹配的任何请求都将转发到  默认后端http://$my_java_web_server以及对http://my.test1.server:8080;服务器的镜像请求。

location ~ ^/my.url {
  proxy_pass http://$my_java_web_server;
  proxy_set_header Host $my_java_web_server;
  ...

  post_action @post_for_first_mirroring;
  ...
}

location @post_for_first_mirroring {
  proxy_ignore_client_abort on;
  ...
  proxy_pass http://my.test1.server:8080;
}