Nginx(with nginx-proxy) 设置 Cache-Control

  • Nginx:Web 服务器,官网
  • nginx-proxy:使用 docker-gen 为 Docker Nginx 提供代理,官网
  • Cache-Control:HTTP 请求头,用于控制缓存,文档

#第一步:根据 nginx-proxy 文档设置 nginx.conf

我需要设置单个 VIRTUALHOST 网站的配置,选择通过文件而不是环境变量设置,后者不够自由,可设置的选项有限。

#1 修改 nginx-proxy compose 文件

~/nginx-proxy/docker-compose.yml

1
2
3
4
5
- vhost:/etc/nginx/vhost.d
+ /etc/nginx/vhost.d:/etc/nginx/vhost.d

volumes:
-  vhost:

#2 写入配置

1
2
3
sudo mkdir /etc/nginx/vhost.d
sudo vim /etc/nginx/vhost.d/www.yidajiabei.xyz
sudo ln -s /etc/nginx/vhost.d/www.yidajiabei.xyz /etc/nginx/vhost.d/yidajiabei.xyz

/etc/nginx/vhost.d/www.yidajiabei.xyz

1
2
server_tokens off;
add_header Cache-Control max-age=31536000;

#第二步:重启 nginx-proxy 容器以及 Nginx 博客实例

1
2
3
4
cd /path/to/nginx-proxy
docker-compose down && docker-compose up -d
cd /path/to/docker-blog
docker-compose down && docker-compose up -d

参考资料:

  1. Serve static assets with an efficient cache policy
  2. Prevent unnecessary network requests with the HTTP Cache
  3. How to Configure Cache-Control Headers in NGINX

Layout of comment panels