Nginx - 为子别名中的所有静态文件配置位置正则表达式

时间:2013-07-18 09:26:11

标签: file static nginx alias directive

我一直在尝试差不多一天没有运气将nginx配置为apache的代理反向。 我希望nginx将提供所有静态文件,其余的将传递给apache。

如果站点位于根域名上,则不难实现此目的。

例如,我已成功设置:

www.mydomain.com

location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml|rss|txt)$ {
     root /path/to/mysite;
}

location / {
     proxy_pass 127.0.0.1:8080;
     proxy_set_header Host $host;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     proxy_set_header X-Real-IP $remote_addr;
}

现在问题出现了,因为我想在别名内配置网站 例如: www.mydomain.com/site1

有人知道如何达到同样的目的吗?

我试过以下配置不起作用:

location /site1 {
    location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml|rss|txt)$ {
            root /path/to/anothersite1;
    }
     proxy_pass apache:8080;
     proxy_set_header Host $host;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     proxy_set_header X-Real-IP $remote_addr;
}

问题是'root'指令不替换/ site1 URI。 例如,请求

www.mydomain.com/site1/folder/pic.jpg

将通过打开文件来处理:

/path/to/anothersite1/site1/folder/pic.jpg;

而不是:

/path/to/anothersite1/folder/pic.jpg

我真的很感激这方面的任何帮助。 我试图用'别名'替换'root'指令,但仍然没有运气。

事先感谢,

0 个答案:

没有答案