忽略代理中的根angular色

我的子域sbd.example.org是一个web服务,当请求是根( / )的GET时,需要返回一个HTML静态页面,并且是任何其他情况(例如sbd.example.org )的代理重写。 所以我需要

  • 获取http://sbd.example.org到通常的索引和try_files
  • GET http://sbd.example.org/t重写到代理

但是我的/etc/nginx/sites-available/sbd没有像预期的那样工作。 这是有问题的来源:

 server { server_name sbd.example.org; root /var/www/sbd/html; index index.html index.htm; location / { try_files $uri $uri/ =404; } location ~ ^/[az].+$ { rewrite ^/(.*)$ /$1 break; proxy_pass http://127.0.0.1:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; default_type application/json; proxy_hide_header Content-Location; proxy_set_header Connection ""; proxy_http_version 1.1; } } 

错误 :GET http://sbd.example.org/不是一个HTML页面,而是一个JSON,带有代理生成的错误消息,作为http://sbd.example.org/index.htm的请求。

如何纠正我的Nginx脚本?

PS:所有的http://sbd.example.org/etc工作正常。

而不是确定需要发送到代理的东西,可能更容易确定什么文件是静态的。

 location / { try_files $uri $uri/ @proxy; } location @proxy { proxy_pass http://127.0.0.1:3000; ... } 

请参阅此文档了解更多