This link 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?

Clarification regarding possible question dupes:

nginx caching dynamic content to static My question is caching dynamic content when sessions are involved. The above question is more general (no mention about sessions).

  • HTTP is all around resources (URI) and headers. I cannot grasp what you mean under "XYZ" in your question, how you identify cookies, etc. -- it would be helpful if you could define your question in technical terms. Commented Feb 26, 2012 at 13:15

2 Answers 2


I think you'll be better off looking at Varnish for this, nginx has very limited caching functionality.

With nginx you can detect cookie data and use that to force the user a different cache key as shown here, but this probably isn't enough for what you want to do.


You can use HttpSsiModule wherever you need dynamic works (Session vs.)

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .