Conditional root folder based on server name with nginx

Errol Fitzgerald asked:

I need to set the root based on what server the request is coming from. This is what i would like to accomplish in nginx. I took out stuff I thought was irrelevant.

server {
    listen 81;
    charset utf-8;
    expires -1;

    location / {
        location ~* \.(jpg|jpeg|rtf|json|png|gif|css|js|swf|flv|ico)$ {
            expires max;
            access_log off;
            log_not_found off;

            if (server_name = {
                root /folder1
            if (server_name = {
                root /folder2
            if (server_name = {
                root /folder3
        try_files $uri $uri/ @proxy;

How can I go about setting this up?

My answer:

Why not just do something like..

root /srv/www/$http_host;

and change the directory structure to match:



View the full question and any other answers on Server Fault.

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.