fix(nginx): add LB loopback admin routes and correct Public docroot case

LoadBalancer nginx had no ^/admin/ location, so when a server higher in
the tree pulled a stream whose source is an LB, the LB returned 404 for
/admin/{live,timeshift,thumb,vod} before the request ever reached PHP.
The MAIN→LB direction worked (MAIN has the route); LB→MAIN was silently
broken — stream shown down, nothing in the panel logs.

Add a reduced admin location exposing ONLY the loopback handlers
(live|timeshift|thumb|vod) — not index|api|proxy_api — so the admin
panel itself is never served from a LoadBalancer. Mirrors the MAIN
admin gateway block.

Also fix a PSR-4 rename miss: the directory rename public/ → Public/
(1a296d09) updated src/bin/nginx/conf/nginx.conf but left
lb_configs/nginx.conf pointing at /home/xc_vm/public/ everywhere
(root, stream, progress, api). On a case-sensitive fresh LB install the
on-disk path is Public/, so every SCRIPT_FILENAME 404'd — all LB
streaming broke, not just loopback. Repoint the 8 filesystem paths to
Public/; SCRIPT_NAME stays /public/ (logical CGI path, matches MAIN).

Note: bin/nginx is update-excluded, so existing LBs keep their old
config and must be patched manually or reinstalled; only fresh installs
pick up the corrected lb_configs/nginx.conf.
This commit is contained in:
Divarion-D
2026-06-26 20:02:28 +03:00
parent 6d9cd5821c
commit f829bd5672
7 changed files with 13 additions and 73 deletions
+3
View File
@@ -62,6 +62,7 @@ class UserRepository {
return $rRow;
}
}
return null;
}
/**
@@ -168,6 +169,7 @@ class UserRepository {
} else {
return $db->get_row();
}
return null;
}
/**
@@ -184,6 +186,7 @@ class UserRepository {
} else {
return $db->get_row();
}
return null;
}
/**