Le 2017-08-05 à 14:42, Etienne Robillard a écrit :
> I'm testing a OAuth2 middleware on my python web app and would like to
> disable fastcgi caching when the fastcgi variable REMOTE_USER is set.
> Is there any ways of doing this from nginx?
> Thanks in advance,
Re: How to disable fastcgi caching for the logged user?
Thank you for your reply. What is the difference between:
fastcgi_no_cache $http_pragma $http_authorization
In addition, how can I verify the configuration is working as expected?
Le 2017-08-06 à 05:48, Francis Daly a écrit :
> The documentation at http://nginx.org/r/fastcgi_no_cache describes what
> that directive should do.
> You want to disable fastcgi caching when the fastcgi variable REMOTE_USER
> is set.
> Your config presumably includes something like "fastcgi_param REMOTE_USER
> In that case, you want "fastcgi_no_cache $something".
In each case, if the request is handled by a fastcgi_pass, then the
response will[*] be cached unless certain conditions apply.
In the first case, the conditions are that either there is a Pragma:
header (other than "Pragma: 0") or an Authorization: header (other than
"Authorization: 0") in the initial request.
In the second case, the condition is if "user name supplied with the
Basic authentication" is not empty (and, I guess, not 0). Basic
authentication uses the Authorization: header; it is not the only thing
that uses that header, and I guess that there may be a separate way to
populate that variable (but I have not investigated).
[*] strictly, it is more like "will not, not be cached". There are other
reasons why the response might not be cached.
> In addition, how can I verify the configuration is working as expected?
Watch the logs. Watch the network traffic. Watch the files on the filesystem.
Make a http request. Did it go to the fastcgi server? Was the response
cached? (Was a file in the cache recently modified?)
Repeat the http request? Did this one go to the fastcgi server, or was
it served from cache?