特定路径和某些文件类型的Nginx位置块

时间:2014-04-01 18:22:26

标签: wordpress nginx reverse-proxy

我无法为某些路径和文件类型定义位置块。 我正在使用wordpress并使用一个生成动态站点地图的插件。它重定向到像sitemapindex.xml这样的路径,它实际上并不存在,而且nginx正试图静态地提供它。

我需要能够将此传递给apache

我需要向apache发送http://example.com/blog/ *。xml的任何内容。这就是我正在尝试的,它不起作用..例如:

http://example.com/blog/post.xml or http://example.com/blog/sitemapindex.xml

nginx config

server {

    location ~* ^/blog/*.xml$ {
        include /etc/nginx/proxy_params; 
        proxy_pass http://127.0.0.1:8080;
    }

}

正确的语法是什么

由于

2 个答案:

答案 0 :(得分:3)

我的图像有类似的问题。在我的应用程序中,图像是从两个不同的位置提供的。

您可以根据网址格式指定不同的来源。您的解决方案看起来就像这样。

location ~* ^/blog/.+\.(xml)$ {
    root /some/path/;
    expires 90d;
}

location ~* \.(xml|js|jpg|png|css|html|otf|eot|svg|ttf)$ {
    root /some/other/path/;
    expires 30d;
    index index.html;
}

答案 1 :(得分:1)

要逃离那个时期

server {
    location ~* ^/blog/.*\.xml$ {
        proxy_pass http://127.0.0.1:8080;
    }
}