我有单页应用程序的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;
}
}
它成功地将api
,admin
,attachments
的查询代理到my_app
,但sitemap.xml
不会发生这种情况。 Nginx正试图从sitemap.xml
获取/var/www/my_app/dist
。
为什么呢?我该如何解决这个问题?
答案 0 :(得分:2)
'/ sitemap.xml'与第一个位置的正则表达式不匹配,因为它在末尾有一个斜杠。您可以通过以下方式修复它:
location ~ ^/((api|admin|attachments)/|sitemap.xml$) {
proxy_pass http://my_app;
}