Welcome! Log In Create A New Profile

Advanced

etag missing when doing a proxy_pass

April 26, 2019 05:23PM
Hi

I'm trying to use ETags with nginx when looking at html data (Content-Type: text/html). I don't see an issue when the content-type comes back as Content-Type: text/plain.


To reduce noise I tried the following:

I created an nginx conf file on my local host that would serve up an html page and created the ETag header inside

server {

listen 3000;

location / {
etag off;
proxy_http_version 1.1;
root /var/www/nginx/default;
more_set_headers "testEtag: adfaa-dfsdfasdf";
more_set_headers "ETag: adfaa-dfsdfasdf";
}

}


I tried with etag on and the resulting curl did not generate an ETag header so I tried with etag off.


Next to simulate the proxy_pass scenario I created another nginx conf file with the following:


server {


listen 5000;


location /echoheaders {

etag off;

#more_set_headers ETag:$upstream_http_etag;
more_set_headers x-my-e-tag:$upstream_http_etag;
more_set_headers "my-test-etag:adfasdfadfadsf";
more_set_headers "ETag:234adfl-affai9f";


proxy_pass http://127.0.0.1:3000/;
}

}

Then I did the following curl cmds:

root@public-crd0edf9d103b74bc088058b9011bc6f59-alb1-6d5979ccf5-jn5qs:/etc/nginx/conf.d# curl -I http://127.0.0.1:3000/
HTTP/1.1 200 OK
Date: Fri, 26 Apr 2019 21:18:29 GMT
Content-Type: text/html
Connection: keep-alive
testEtag: adfaa-dfsdfasdf
ETag: adfaa-dfsdfasdf
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Cache-Control: no-cache

Which shows an ETag header


curl -I http://127.0.0.1:5000/echoheaders
HTTP/1.1 200 OK
Date: Fri, 26 Apr 2019 21:18:21 GMT
Content-Type: text/html
Connection: keep-alive
testEtag: adfaa-dfsdfasdf
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Cache-Control: no-cache
x-my-e-tag: adfaa-dfsdfasdf
my-test-etag: adfasdfadfadsf

Goes through a proxy pass and does not show a ETag header. removing the etag directive or setting it to etag on; in the config files with the proxy pass does not seem to have any affect.

Wondering if there is some known behavior with ETag and proxy_pass? Also wondering what nginx is doing so that I can't just set the ETag header manually. It seems like nginx is the one removing the header?
Subject Author Posted

etag missing when doing a proxy_pass

ayma April 26, 2019 05:23PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 313
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready