How to Cache dynamic content using Nginx when sessions are involved?How to Cache dynamic content usi

This site explains how to create static files from dynamic content using
Nginx.

My question is this: can I achieve the same if login sessions are
involved. ie. when I want to serve content to only registered users and
not otherwise. So how to overcome sessions when it comes to caching and
finally to use the cache next time for another session?

Detailed scenario:

The goal of my website is to serve content to only registered users.

There are plenty of users logged in, each having different session IDs.

A php page queries the DB and finds “XYZ” that user “A” wants and
generates HTML output.

Now if user “B” (with a different session ID) after sometime wants the
same “XYZ”, how to make Nginx to deliver from cache without making the
php page to query the db again.

Has anybody done this before? Thanks in advance.

Posted at Nginx Forum:

On 26 Fev 2012 06h13 CET, [email protected] wrote:

making the php page to query the db again.
You mean you want registered users to be served the same page
regardless of their respective session ID?

Has anybody done this before? Thanks in advance.

If that’s the case then it’s simple. From the given example:

At the http level:

map $uri $cache_uri {
default $uri;
/ index.html;
}

At the server level:

location ~ ^/200[0-8]/[01][0-9]/ {
root /tmp/nginx/blog/fetch;
expires 30d;
error_page 403 404 = /fetch$uri;
}

location ^~ /fetch/ {
internal;
proxy_pass http://127.0.0.1:80;
proxy_store /tmp/nginx/blog$cache_uri;
proxy_store_access user:rw group:rw all:r;
}

— appa