如何获得nginx与proxy_pass和if_modified_since返回一个304-Not Modified

我看到迹象表明这应该起作用,所以我希望我错过简单的东西。

我们有两个nginx“服务器”,前面有一个proxy_passcaching,后面有一个SSI服务器。 如果我在请求中直接使用If-Modified-Since标头直接访问SSI服务器,它将会返回一个304-Not Modified响应,这正是我们想要的。 但是我不能让proxy_passcaching服务器返回一个304-Not Modified的任何东西。

我应该能够得到proxy_pass返回一个304 – 没有修改? 有没有其他人有它可以共享的configuration工作? 或者你可以发现我的configuration中的问题?

# this is the cache in front server { listen 8096; server_name _; proxy_buffering on; location /assets { proxy_pass http://localhost:8095; proxy_cache my-cache; proxy_cache_valid 200s; if_modified_since before; } } server { listen 8095; server_name _; root /var/www/; location / { deny all; } location /assets {} ssi on; # on or off doesn't make a difference to the front-end cache behavior if_modified_since before; } } # here's the base config, fwiw: proxy_buffering on; proxy_cache_valid any 10m; proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my-cache:8m max_size=3000m inactive=24h; proxy_temp_path /var/cache/nginx/tmp; proxy_buffer_size 4k; proxy_buffers 100 8k; 

谢谢。

是的,这是可能的,是的这个configuration工作正常。 原来,nginx正在caching一个Expires头文件,从我的testing中设置到下周。 不要介意 : – /