同时服务 React 前端和 Flask 后端(nginx)

Serving react frontend and flask backend simultaneously (nginx)

我有一个 React 前端和一个 Flask 后端。

目前我用以下方式服务后端

server {
    location / {
        try_files $uri @yourapplication;
    }
    location @yourapplication {
        include uwsgi_params;
        uwsgi_pass unix:///tmp/uwsgi.sock;
    }
}

我想以一种允许我从 / 为我的 React 应用程序提供服务并从所有其他路由访问 API 的方式配置 nginx(即 /users 是一个 api端点)。

这是 "sensible" 设置吗? 我的配置文件应该是什么样的?

最终使用以下设置

server {

    root /var/www;
    index index.html index.htm;

    location =/ {
        try_files $uri $uri/ /index.html;
    }

    # Media: images, icons, video, audio, HTC
    location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ {
        expires 1M;
        access_log off;
        add_header Cache-Control "public";
    }

    # Javascript and CSS files
    location ~* \.(?:css|js)$ {
        try_files $uri =404;
        expires 1y;
        access_log off;
        add_header Cache-Control "public";
    }

    # Any route containing a file extension (e.g. /devicesfile.js)
    location ~ ^.+\..+$ {
        try_files $uri =404;
    }

    location /user {
        try_files $uri @yourapplication;
    }

    location /register {
        try_files $uri @yourapplication;
    }

    location /login {
        try_files $uri @yourapplication;
    }

    location @yourapplication {
        include uwsgi_params;
        uwsgi_pass unix:///tmp/uwsgi.sock;
    }
}

换句话说,对于生产,它在 =/ 上提供静态文件,并且对于每个其他端 ponint 将其传递给 flask。