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;
    server_name d1.com d2.com d3.com;
    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 = d1.com) {
                root /folder1
            if (server_name = d2.com) {
                root /folder2
            if (server_name = d3.com) {
                root /folder3
        try_files $uri $uri/ @proxy;

How can I go about setting this up?


1 Answer 1


Why not just do something like..

root /srv/www/$http_host;

and change the directory structure to match:



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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