Nginx Add_header


原文链接: Nginx Add_header

禁止浏览器缓存

    location ~.*\.(htm|html)$
    {
       #本地WEB目录,调整为实际的目录
       root D:/GoWorkSpace/goprojs/src/hr360proj/webapp; 
       # 禁止浏览器缓存
       add_header Cache-Control 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0';

}

直接获取客户端真实ip

location  /ip {
  # 默认是文件格式
  add_header  Content-Type 'text/html; charset=utf-8';

  set $realip $remote_addr;
  if ($http_x_forwarded_for ~ "^(\d+\.\d+\.\d+\.\d+)") {
    set $realip $1;
  }

  return 200 "$realip";
}

Nginx proxy_set_header:即允许重新定义或添加字段传递给代理服务器的请求头。该值可以包含文本、变量和它们的组合。在没有定义proxy_set_header时会继承之前定义的值。默认情况下,只有两个字段被重定义:

proxy_set_header Host $proxy_host;
proxy_set_header Connection close;

如果启用缓存,来自之前请求的头字段“If-Modified-Since”, “If-Unmodified-Since”, “If-None-Match”, “If-Match”, “Range”, 和 “If-Range” 将不会被代理服务器传递。
一个不会变化的“Host”头请求字段可通过如下方式被传递:
proxy_set_header Host $http_host;

然后,当字段不在请求头中就无法传递了,在这种情况下,可通过设置Host变量,将需传递值赋给Host变量

proxy_set_header Host $host;

此外,服务器名称和端口一起通过代理服务器传递
proxy_set_header Host $host:$proxy_port;

如果请求头的存在空的字段将不会通过代理服务器传递出去
proxy_set_header Accept-Encoding "";

`