缓存 – Nginx,如果没有设置,如何添加标头

前端之家收集整理的这篇文章主要介绍了缓存 – Nginx,如果没有设置,如何添加标头前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我想通过Nginx添加标题(缓存控制),如果它没有设置.

在某些情况下我需要增加缓存时间(使用PHP),并通过标题“说”Nginx.

对不起,如果不清楚的话,我真是个新手)

最佳答案
您可以使用map填充变量$cachecontrol.如果$http_cache_control(来自客户端的标头)为空,请设置自定义值.否则(默认)重用客户端的值.

  1. map $http_cache_control $cachecontrol {
  2. default $http_cache_control;
  3. "" "public,max-age=31536000";
  4. }

之后,您可以使用该变量发送上游标头.

  1. proxy_set_header X-Request-ID $cachecontrol;

对于jmcollin92的后续问题,我在SO文档中写了以下内容,现在转录到此处.

X – 请求-ID

Nginx

反向代理可以检测客户端是否提供X-Request-ID标头,并将其传递给后端服务器.如果没有提供这样的头,它可以提供随机值.

  1. map $http_x_request_id $reqid {
  2. default $http_x_request_id;
  3. "" $request_id;
  4. }

上面的代码将请求ID存储在变量$reqid中,随后可以在日志中使用它.

  1. log_format trace '$remote_addr - $remote_user [$time_local] "$request" '
  2. '$status $body_bytes_sent "$http_referer" "$http_user_agent" '
  3. '"$http_x_forwarded_for" $reqid';

它也应该传递给后端服务

  1. location @proxy_to_app {
  2. proxy_set_header X-Request-ID $reqid;
  3. proxy_pass http://backend;
  4. access_log /var/log/Nginx/access_trace.log trace;
  5. }

猜你在找的Nginx相关文章