nixpkgs/pkgs/servers
aszlig ccf55bead1
nginx: Clear Last-Modified if ETag is from store
This is what I've suspected a while ago[1]:

> Heads-up everyone: After testing this in a few production instances,
> it seems that some browsers still get cache hits for new store paths
> (and changed contents) for some reason. I highly suspect that it might
> be due to the last-modified header (as mentioned in [2]).
>
> Going to test this with last-modified disabled for a little while and
> if this is the case I think we should improve that patch by disabling
> last-modified if serving from a store path.

Much earlier[2] when I reviewed the patch, I wrote this:

> Other than that, it looks good to me.
>
> However, I'm not sure what we should do with Last-Modified header.
> From RFC 2616, section 13.3.4:
>
> - If both an entity tag and a Last-Modified value have been
>   provided by the origin server, SHOULD use both validators in
>   cache-conditional requests. This allows both HTTP/1.0 and
>   HTTP/1.1 caches to respond appropriately.
>
> I'm a bit nervous about the SHOULD here, as user agents in the wild
> could possibly just use Last-Modified and use the cached content
> instead.

Unfortunately, I didn't pursue this any further back then because
@pbogdan noted[3] the following:

> Hmm, could they (assuming they are conforming):
>
>  * If an entity tag has been provided by the origin server, MUST
>    use that entity tag in any cache-conditional request (using If-
>    Match or If-None-Match).

Since running with this patch in some deployments, I found that both
Firefox and Chrome/Chromium do NOT re-validate against the ETag if the
Last-Modified header is still the same.

So I wrote a small NixOS VM test with Geckodriver to have a test case
which is closer to the real world and I indeed was able to reproduce
this.

Whether this is actually a bug in Chrome or Firefox is an entirely
different issue and even IF it is the fault of the browsers and it is
fixed at some point, we'd still need to handle this for older browser
versions.

Apart from clearing the header, I also recreated the patch by using a
plain "git diff" with a small description on top. This should make it
easier for future authors to work on that patch.

[1]: https://github.com/NixOS/nixpkgs/pull/48337#issuecomment-495072764
[2]: https://github.com/NixOS/nixpkgs/pull/48337#issuecomment-451644084
[3]: https://github.com/NixOS/nixpkgs/pull/48337#issuecomment-451646135

Signed-off-by: aszlig <aszlig@nix.build>
2019-12-30 14:30:36 +01:00
..
amqp treewide: update which packages I'm currently maintaining 2019-12-26 15:27:47 +01:00
apache-kafka kafka: Fix stop script in pure environments 2019-10-03 13:37:48 -04:00
apcupsd
asterisk treewide: remove redundant rec 2019-08-28 11:07:32 +00:00
atlassian atlassian-confluence: 7.1.0 -> 7.2.0 2019-12-19 00:25:15 +01:00
beanstalkd treewide: name -> pname (easy cases) (#66585) 2019-08-15 13:41:18 +01:00
bird bird: compile with libssh for rpki support 2019-11-17 00:47:45 +01:00
blockbook blockbook: increase ulimit -n on darwin for packr execution 2019-07-20 01:24:18 +01:00
brickd treewide: remove redundant rec 2019-08-28 11:07:32 +00:00
caddy caddy2: init at 2.0.0-beta10 (#74843) 2019-12-03 13:19:38 +00:00
cayley cayley: 0.6.1 -> 0.7.5 2019-08-31 18:33:57 -07:00
clickhouse clickhouse: 19.13.5.44 -> 19.13.6.51 2019-10-27 23:20:55 +01:00
cloud-print-connector cloud-print-connector: fix build against cups 2019-12-21 11:59:08 +00:00
computing slurm: 19.05.4.1 -> 19.05.5.1 2019-12-24 10:06:24 -08:00
confluent-platform treewide: name -> pname (easy cases) (#66585) 2019-08-15 13:41:18 +01:00
consul consul: 1.6.1 -> 1.6.2 2019-11-20 15:44:24 -08:00
corosync net-snmp: rename from net_snmp 2019-12-21 22:56:08 +00:00
coturn treewide: remove redundant quotes 2019-09-08 23:38:31 +00:00
couchpotato couchpotato: pin python2 2019-11-13 16:27:38 +01:00
dante dante: add darwin support 2019-09-23 12:30:34 +00:00
demoit treewide: remove redundant rec 2019-08-28 11:07:32 +00:00
dex dex-oidc: use buildGoPackage 2019-09-21 04:26:00 -05:00
dgraph dgraph: 0.8.2 -> 1.0.17 2019-08-31 19:15:52 -07:00
dico dico: 2.7 -> 2.9 2019-04-24 09:25:58 -05:00
dict Merge remote-tracking branch 'upstream/gcc-8' into staging-next 2019-09-08 20:44:26 +02:00
diod Merge branch 'master' into staging-next 2019-08-24 08:55:37 +02:00
dns Merge pull request #76340 from r-ryantm/auto-update/nsd 2019-12-29 11:01:46 +01:00
documize-community documize-community: 3.5.2 -> 3.6.0 2019-12-14 16:24:42 +01:00
echoip echoip: Use index output for index.html 2019-09-10 16:01:46 +02:00
elasticmq
elasticmq-server-bin treewide: name -> pname (easy cases) (#66585) 2019-08-15 13:41:18 +01:00
endlessh endlessh: init at 1.0 2019-05-21 16:04:21 +09:00
etcd treewide: name -> pname (easy cases) (#66585) 2019-08-15 13:41:18 +01:00
exhibitor treewide: name -> pname (easy cases) (#66585) 2019-08-15 13:41:18 +01:00
fcgiwrap treewide: name -> pname (easy cases) (#66585) 2019-08-15 13:41:18 +01:00
felix treewide: name -> pname (easy cases) (#66585) 2019-08-15 13:41:18 +01:00
fileshare fileshare: init at 0.2.4 2019-10-06 17:32:34 +09:00
fingerd/bsd-fingerd treewide: remove redundant rec 2019-08-28 11:07:32 +00:00
firebird treewide: Remove unnecessary --disable-static (#66759) 2019-08-31 08:10:53 -04:00
foundationdb foundationdb: no clang, use default gcc 2019-11-01 00:36:31 -05:00
freeradius freeradius: 3.0.19 -> 3.0.20 2019-11-27 15:11:39 -08:00
ftp bftpd: 5.1 -> 5.2 2019-07-18 22:05:23 -07:00
gopher/gofish treewide: name -> pname (easy cases) (#66585) 2019-08-15 13:41:18 +01:00
gortr gortr: init at 0.13.0 2019-11-16 23:12:50 +01:00
gotify gotify-server: 2.0.11 -> 2.0.12 2019-12-01 22:05:08 +02:00
gotty gotty: 0.0.13 -> 2.0.0-alpha.3 2019-12-06 04:26:07 +01:00
gpm treewide: remove wkennington as maintainer 2019-01-26 10:05:32 +00:00
gpsd treewide: use scons setup hook 2018-11-13 19:14:10 -06:00
h2 treewide: name -> pname (easy cases) (#66585) 2019-08-15 13:41:18 +01:00
hbase treewide: name -> pname (easy cases) (#66585) 2019-08-15 13:41:18 +01:00
headphones treewide: fix malformed homepage URLs 2019-07-01 21:12:25 -07:00
hitch hitch: 1.5.0 -> 1.5.2 (#75243) 2019-12-08 19:10:47 +01:00
holochain-go
home-assistant home-assistant: Regenerate components file 2019-12-07 12:50:45 +01:00
http nginx: Clear Last-Modified if ETag is from store 2019-12-30 14:30:36 +01:00
hydron treewide: remove redundant rec 2019-08-28 11:07:32 +00:00
hylafaxplus hylafaxplus: 7.0.0 -> 7.0.1 2019-11-01 22:26:51 -07:00
icecast icecast: 2.4.3 -> 2.4.4 2018-11-01 21:48:22 +01:00
icingaweb2 icingaweb2: 2.7.1 -> 2.7.3 2019-10-22 10:10:20 +02:00
identd Merge branch 'master' into staging-next 2019-08-24 08:55:37 +02:00
interlock treewide: name -> pname (easy cases) (#66585) 2019-08-15 13:41:18 +01:00
irc Treewide: fix URL permanent redirects 2019-11-16 01:41:23 +01:00
irker treewide: remove redundant rec 2019-08-28 11:07:32 +00:00
isso isso: 0.11.1 -> 0.12.2 2019-01-28 06:10:07 -08:00
jackett jackett: 0.11.751 -> 0.12.907 2019-11-01 21:53:45 -07:00
jellyfin jellyfin: 10.4.2 -> 10.4.3 2019-12-07 10:50:38 +01:00
jetbrains treewide: name -> pname (easy cases) (#66585) 2019-08-15 13:41:18 +01:00
kippo treewide: name -> pname (easy cases) (#66585) 2019-08-15 13:41:18 +01:00
kwakd treewide: remove redundant rec 2019-08-28 11:07:32 +00:00
ldap/389 net-snmp: rename from net_snmp 2019-12-21 22:56:08 +00:00
lidarr lidarr: Add missing dependency chromaprint 2019-10-22 17:39:09 +02:00
limesurvey limesurvey: 3.17.1+190408 -> 3.17.12+190823 2019-08-24 08:15:13 -04:00
livepeer stop using hardeningDisable = [ "fortify" ]; for Go packages 2019-10-27 14:44:26 +01:00
ma1sd ma1sd: init at 2.1.1 2019-10-07 18:50:39 +02:00
mail spamassassin: fix IPv6 2019-12-24 23:41:03 +00:00
matrix-synapse matrix-synapse: 1.7.1 -> 1.7.2 2019-12-20 19:32:34 +01:00
matterbridge treewide: name -> pname (easy cases) (#66585) 2019-08-15 13:41:18 +01:00
mattermost treewide: name -> pname 2019-08-17 10:54:38 +00:00
mautrix-telegram mautrix-telegram: mark as broken on darwin 2019-12-29 19:56:05 -08:00
mautrix-whatsapp mautrix-whatsapp: 2019-09-03 -> 2019-11-17 2019-11-29 16:32:49 +01:00
mediatomb treewide: name -> pname (easy cases) (#66585) 2019-08-15 13:41:18 +01:00
meguca treewide: remove redundant rec 2019-08-28 11:07:32 +00:00
memcached memcached: 1.5.19 -> 1.5.20 2019-11-29 15:57:10 -08:00
mesos-dns treewide: name -> pname (easy cases) (#66585) 2019-08-15 13:41:18 +01:00
metabase metabase: 0.33.6 -> 0.33.7.1 2019-12-29 15:49:22 -06:00
meteor meteor: 1.8.1 -> 1.8.2 2019-12-07 19:15:05 +01:00
miniflux miniflux: 2.0.18 -> 2.0.19 2019-12-19 17:43:16 +01:00
minio minio: 2019-02-26T19-51-46Z -> 2019-10-12T01-39-57Z 2019-10-28 13:25:29 +01:00
mirrorbits mirrorbits: Fix build with go 1.12 2019-09-11 14:33:13 +01:00
misc airsonic: 10.4.2 -> 10.5.0 2019-12-07 21:56:45 +01:00
monitoring monitoring plugins: fix path to sudo and mailq 2019-12-29 15:45:13 -06:00
mpd mpd: 0.21.16 -> 0.21.17 2019-12-23 15:43:51 -08:00
mqtt/mosquitto mosquitto: 1.6.6 -> 1.6.7 2019-10-23 08:48:08 -07:00
mtprotoproxy mtprotoproxy: 1.0.7 -> 1.0.8 2019-11-28 04:42:56 -08:00
mumsi treewide: remove redundant rec 2019-08-28 11:07:32 +00:00
mxisd mxisd: reduce gradle requirement to gradle_4 2019-10-07 18:50:39 +02:00
nas treewide/xorg: replace *proto with xorgproto 2019-01-04 14:38:57 +01:00
nats-server nats-server: rename (from gnatsd), 1.4.0 -> 2.1.0 2019-10-28 21:50:14 -05:00
nats-streaming-server nats-streaming-server: 0.11.2 -> 0.16.2 2019-10-28 21:50:14 -05:00
neard
news/leafnode treewide: remove redundant rec 2019-08-28 11:07:32 +00:00
nextcloud nextcloud: 17.0.1 -> 17.0.2 2019-12-20 19:32:21 +01:00
nginx-sso nginx-sso: 0.16.1 -> 0.22.0 2019-11-22 14:15:27 -05:00
nosql neo4j: 3.5.12 -> 3.5.13 (#75282) 2019-12-09 00:21:27 +01:00
nsq treewide: name -> pname (easy cases) (#66585) 2019-08-15 13:41:18 +01:00
oauth2_proxy treewide: remove unused variables (#63177) 2019-06-16 19:59:05 +00:00
openafs openafs_1_8: 1.8.3 -> 1.8.5 (#75104) 2019-12-07 11:58:19 -05:00
openxpki openxpki: mark as broken 2019-08-21 21:36:39 +02:00
osrm-backend treewide: name -> pname (easy cases) (#66585) 2019-08-15 13:41:18 +01:00
p910nd treewide: name -> pname (easy cases) (#66585) 2019-08-15 13:41:18 +01:00
pies Treewide: use HTTPS on GNU domains 2018-12-02 15:51:59 +01:00
plex plex: 1.18.2.2058 -> 1.18.3.2156 2019-12-21 18:46:32 +01:00
polipo treewide: name -> pname (easy cases) (#66585) 2019-08-15 13:41:18 +01:00
prayer prayer: fix broken build 2019-09-12 12:11:09 -04:00
ps3netsrv treewide: remove redundant rec 2019-08-28 11:07:32 +00:00
pulseaudio dconf: move to top-level 2019-12-01 01:01:40 +01:00
quagga net-snmp: rename from net_snmp 2019-12-21 22:56:08 +00:00
radarr treewide: name -> pname (easy cases) (#66585) 2019-08-15 13:41:18 +01:00
radicale radicale: Fix runtime 2019-09-14 00:56:19 +02:00
rainloop rainloop-standard: Fix pname and license (#73963) 2019-11-23 15:36:28 +01:00
rippled treewide: remove redundant rec 2019-08-28 11:07:32 +00:00
roon-server roon-server: init at 100600401 2019-06-25 09:34:07 -04:00
roundcube treewide: update which packages I'm currently maintaining 2019-12-26 15:27:47 +01:00
routinator routinator: 0.6.2 -> 0.6.4 2019-11-29 15:09:52 +00:00
rpcbind treewide: remove redundant rec 2019-08-28 11:07:32 +00:00
rt perlPackages.CSSMinifierXS: rename from perlPackages.CSSMinifierXP 2019-10-04 14:47:00 +02:00
sabnzbd treewide: name -> pname (easy cases) (#66585) 2019-08-15 13:41:18 +01:00
samba samba: 4.10.10 -> 4.10.11 (#75456) 2019-12-11 11:12:49 +01:00
scylladb scylladb: don't build on Hydra; /cc PR #70576 2019-10-12 09:46:56 +02:00
search Merge pull request #75394 from r-ryantm/auto-update/solr 2019-12-09 21:48:52 -05:00
serf treewide: name -> pname (easy cases) (#66585) 2019-08-15 13:41:18 +01:00
serviio treewide: name -> pname (easy cases) (#66585) 2019-08-15 13:41:18 +01:00
shairplay treewide: name -> pname (easy cases) (#66585) 2019-08-15 13:41:18 +01:00
shairport-sync shairport-sync: 3.3.4 -> 3.3.5 2019-11-29 08:09:00 -08:00
shellinabox shellinabox: fix CVE-2018-16789 2019-11-03 16:44:17 +01:00
shishi treewide: remove wkennington as maintainer 2019-01-26 10:05:32 +00:00
sickbeard treewide: remove redundant quotes 2019-09-08 23:38:31 +00:00
silc-server
simplehttp2server treewide: name -> pname (easy cases) (#66585) 2019-08-15 13:41:18 +01:00
sip freeswitch: 1.8.5 -> 1.8.7 2019-08-04 02:34:15 -07:00
sks treewide: remove redundant quotes 2019-09-08 23:38:31 +00:00
skydns treewide: remove redundant quotes 2019-09-08 23:38:31 +00:00
slimserver buildPerlPackage: name -> (pname, version) 2019-06-20 15:56:50 +00:00
smcroute treewide: name -> pname (easy cases) (#66585) 2019-08-15 13:41:18 +01:00
softether treewide: name -> pname (easy cases) (#66585) 2019-08-15 13:41:18 +01:00
sonarr sonarr: Move build time dependency 2019-10-22 17:40:13 +02:00
sql dolt: init at 0.12.0 (#75693) 2019-12-16 00:58:16 +02:00
squid squid: 4.8 -> 4.9 2019-11-29 10:02:11 -08:00
sslh treewide: name -> pname (easy cases) (#66585) 2019-08-15 13:41:18 +01:00
syncserver pythonPackages.syncserver: move to all-packages.nix and fix dependencies 2019-01-30 15:59:00 +01:00
tacacsplus tacacs+: tacacs+ -> tacacsplus 2019-09-03 21:27:40 +00:00
tautulli tautulli: 2.1.37 -> 2.1.38 2019-11-29 10:58:42 -08:00
tegola treewide: name -> pname (easy cases) (#66585) 2019-08-15 13:41:18 +01:00
teleport teleport: 4.0.4 -> 4.1.0 2019-10-06 21:21:53 -07:00
tmate-ssh-server tmate-ssh-server: init at 2.3.0 2019-10-04 15:01:38 +02:00
traefik Merge branch 'master' into staging-next 2019-08-24 08:55:37 +02:00
trezord trezor-udev-rules: init at unstable-2019-07-17 2019-10-30 15:15:22 +01:00
trickster nixos/trickster: add test 2019-11-01 14:10:53 +01:00
tt-rss treewide: remove redundant rec 2019-08-28 11:07:32 +00:00
ttyd ttyd: 1.4.2_pre* -> 1.5.2 2019-08-19 19:30:44 -05:00
tvheadend tvheadend: fix broken build 2019-09-12 21:11:56 -04:00
u9fs treewide: Change URLs to HTTPS 2019-04-22 10:19:54 +02:00
udpt treewide: remove redundant rec 2019-08-28 11:07:32 +00:00
uftp treewide: name -> pname (easy cases) (#66585) 2019-08-15 13:41:18 +01:00
uhub treewide: name -> pname (easy cases) (#66585) 2019-08-15 13:41:18 +01:00
ums treewide: name -> pname (easy cases) (#66585) 2019-08-15 13:41:18 +01:00
unfs3
unifi unifiStable: 5.12.22 -> 5.12.35 2019-11-25 13:27:09 +01:00
unpfs unpfs: init at 0.0.2019-05-17 2019-12-23 08:23:15 +00:00
uwsgi Re-Revert "Merge branch 'staging-next'" 2019-09-22 09:38:09 +02:00
varnish varnishPackages: general version bumps & refactor 2019-11-03 00:12:04 +01:00
web-apps mediawiki: 1.33.1 -> 1.34.0 2019-12-23 12:33:17 -08:00
webmetro treewide: fix cargoSha256 (again) 2019-12-20 20:08:53 +00:00
x11 Merge pull request #74145 from eadwu/xorgserver/1.20.6 2019-11-28 11:00:59 +00:00
xandikos xandikos: init at 0.1.0 2019-12-16 18:02:27 +01:00
xinetd
xmpp ejabberd: 19.08 -> 19.09.1 2019-12-03 22:18:51 +01:00
zoneminder zoneminder: fix build 2019-11-15 10:16:51 +03:00
zookeeper zookeeper: Fix wrong paths in startup script 2019-10-17 02:59:10 -07:00