Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

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).

share|improve this question
    
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. –  Alexander Azarov Feb 26 '12 at 13:15
add comment

2 Answers

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.

share|improve this answer
add comment

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

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.