我的nginx配置如下:
server {
listen 80;
server_name bla;
location /api {
include uwsgi_params;
uwsgi_read_timeout 600;
uwsgi_pass unix:/var/www/html/site.sock;
}
location / {
root /var/www/html;
try_files $uri $uri/ /index.html;
}
}
基本上,我有一个Vue前端和一个Flask / uWSGI后端。该第一个位置规则涵盖了所有后端请求(/ api)。所有前端请求都包含在第二个中。效果很好。
我想做的是,有一些没有前缀api/
的路由例外,在这些路由中,它们转发到后端而不是前端。
例如,我希望能够将/this-is-an-api-request
发送到后端,而不是转发到index.html。我无法使用重定向,因为存在一些POST请求,而且重定向这些请求还没有成功。
答案 0 :(得分:0)
您可以使用error_page
将所有导致404错误的请求转发到后端(docs)。
server {
listen 80;
server_name bla;
location /api {
include uwsgi_params;
uwsgi_read_timeout 600;
uwsgi_pass unix:/var/www/html/site.sock;
}
location / {
error_page 404 = @error;
root /var/www/html;
}
location @error {
include uwsgi_params;
uwsgi_read_timeout 600;
uwsgi_pass unix:/var/www/html/site.sock;
}
}