在 nginx 中添加和使用标头(HTTP)

moh*_*han 6 http nginx http-headers

我正在使用两个系统(都是 nginx 负载均衡器,一个用作备份)。我想添加和使用几个 http 自定义标头。请给出您的建议

例如

  upstream upstream0{
            #list of upstream servers
            server backend:80;
            server backup_load_balancer:777 backup;
            #healthcheck
  }

  server{
        listen  80;
        #Add custom header about the port and protocol  (http or https)
        server_name     _;
        location / {
                proxy_pass "http://upstream0;#" is included since links are not allowed in the post
        }

   }
Run Code Online (Sandbox Code Playgroud)

//备份系统

server{
        listen  777;
        server_name     _;
        #doing some other extra stuf

        #use port and protocol to direct
}
Run Code Online (Sandbox Code Playgroud)

谢谢

Ste*_*use 8

如果你想添加标题,那么你需要这样的东西:

server {
    listen  80;
    server_name     _;
    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-Frame-Options sameorigin;
    add_header X-UA-Compatible "IE=Edge,chrome=1";
    add_header X-Your-Port-Header-Here $server_port;
    add_header X-Your-Protocol-Header-Here $scheme;
    set $yourcustomheader $scheme$server_port;
    add_header X-Your-Custom-Header $yourcustomheader;
    location / {
            proxy_pass http://upstream0;
    }

}
Run Code Online (Sandbox Code Playgroud)

您可以在 Nginx 中引用以下变量。如果以上没有为您提供足够的灵活性,请查看HttpHeadersMore模块,但请注意,大多数标准 Nginx 发行版中都没有提供,因此您可能必须自己编译它。但是,如果您使用 Debian,那么您可以在Dotdebnginx-extras包中找到它。