mirror of
https://git.mirrors.martin98.com/https://github.com/sub-store-org/Sub-Store.git
synced 2025-08-11 18:49:03 +08:00
feat: Node.js 前端代理后端路由 需设置环境变量 注意安全 SUB_STORE_FRONTEND_PATH=/prefix
This commit is contained in:
parent
c35e9d37ae
commit
e05475aa5e
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "sub-store",
|
"name": "sub-store",
|
||||||
"version": "2.14.125",
|
"version": "2.14.126",
|
||||||
"description": "Advanced Subscription Manager for QX, Loon, Surge, Stash and ShadowRocket.",
|
"description": "Advanced Subscription Manager for QX, Loon, Surge, Stash and ShadowRocket.",
|
||||||
"main": "src/main.js",
|
"main": "src/main.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
@ -68,23 +68,42 @@ export default function serve() {
|
|||||||
|
|
||||||
const staticFileMiddleware = express_.static(fe_path);
|
const staticFileMiddleware = express_.static(fe_path);
|
||||||
|
|
||||||
let be_rewrite = '';
|
let be_api_rewrite = '';
|
||||||
|
let be_download_rewrite = '';
|
||||||
let be_api = '/api/';
|
let be_api = '/api/';
|
||||||
|
let be_download = '/download/';
|
||||||
if (fe_be_path) {
|
if (fe_be_path) {
|
||||||
if (!fe_be_path.startsWith('/')) {
|
if (!fe_be_path.startsWith('/')) {
|
||||||
throw new Error(
|
throw new Error(
|
||||||
'SUB_STORE_FRONTEND_BACKEND_PATH should start with /',
|
'SUB_STORE_FRONTEND_BACKEND_PATH should start with /',
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
be_rewrite = `${fe_be_path === '/' ? '' : fe_be_path}${be_api}`;
|
be_api_rewrite = `${
|
||||||
|
fe_be_path === '/' ? '' : fe_be_path
|
||||||
|
}${be_api}`;
|
||||||
|
be_download_rewrite = `${
|
||||||
|
fe_be_path === '/' ? '' : fe_be_path
|
||||||
|
}${be_download}`;
|
||||||
app.use(
|
app.use(
|
||||||
be_rewrite,
|
be_api_rewrite,
|
||||||
createProxyMiddleware({
|
createProxyMiddleware({
|
||||||
target: `http://127.0.0.1:${port}`,
|
target: `http://127.0.0.1:${port}`,
|
||||||
changeOrigin: true,
|
changeOrigin: true,
|
||||||
pathRewrite: (path) => {
|
pathRewrite: (path) => {
|
||||||
return path.startsWith(be_rewrite)
|
return path.startsWith(be_api_rewrite)
|
||||||
? path.replace(be_rewrite, be_api)
|
? path.replace(be_api_rewrite, be_api)
|
||||||
|
: path;
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
app.use(
|
||||||
|
be_download_rewrite,
|
||||||
|
createProxyMiddleware({
|
||||||
|
target: `http://127.0.0.1:${port}`,
|
||||||
|
changeOrigin: true,
|
||||||
|
pathRewrite: (path) => {
|
||||||
|
return path.startsWith(be_download_rewrite)
|
||||||
|
? path.replace(be_download_rewrite, be_download)
|
||||||
: path;
|
: path;
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
@ -106,7 +125,10 @@ export default function serve() {
|
|||||||
$.info(`[FRONTEND] ${fe_address}:${fe_port}`);
|
$.info(`[FRONTEND] ${fe_address}:${fe_port}`);
|
||||||
if (fe_be_path) {
|
if (fe_be_path) {
|
||||||
$.info(
|
$.info(
|
||||||
`[FRONTEND -> BACKEND] ${fe_address}:${fe_port}${be_rewrite} -> http://127.0.0.1:${port}${be_api}`,
|
`[FRONTEND -> BACKEND] ${fe_address}:${fe_port}${be_api_rewrite} -> http://127.0.0.1:${port}${be_api}`,
|
||||||
|
);
|
||||||
|
$.info(
|
||||||
|
`[FRONTEND -> BACKEND] ${fe_address}:${fe_port}${be_download_rewrite} -> http://127.0.0.1:${port}${be_download}`,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user