如果有根位置,如何匹配nginx中的单个文件

时间:2016-09-01 17:49:27

标签: nginx single-page-application

我有单页应用程序的nginx配置,代理应用程序(它是json api)和静态文件(它们只是加载)。

upstream my_app {
        server 127.0.0.1:3001;
}

server {
    listen 80;

    location ~ ^/(api|admin|attachments|sitemap.xml)/ {
        proxy_pass http://my_app;
    }

    location / {
        alias /var/www/my_app/dist/;
        che, must-revalidate, post-check=0, pre-check=0";
        try_files $uri$args $uri$args/ $uri/ /index.html =404;
    }
}

它成功地将apiadminattachments的查询代理到my_app,但sitemap.xml不会发生这种情况。 Nginx正试图从sitemap.xml获取/var/www/my_app/dist

为什么呢?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

'/ sitemap.xml'与第一个位置的正则表达式不匹配,因为它在末尾有一个斜杠。您可以通过以下方式修复它:

location ~ ^/((api|admin|attachments)/|sitemap.xml$) {
    proxy_pass http://my_app;
}