同时服务 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。
我有一个 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。