fix(nginx): admin 用 upstream+proxy_pass 去前缀,替代变量/rewrite

Made-with: Cursor
This commit is contained in:
whm
2026-03-23 19:43:47 +08:00
parent 78055dbe68
commit f5852bc04e
2 changed files with 30 additions and 25 deletions

View File

@@ -1,5 +1,10 @@
# 由 scripts/nginx-entrypoint-wait-dns.sh 在启动时 sed 替换 @@NGINX_RESOLVER@@(来自容器 /etc/resolv.conf
# 再写入 /etc/nginx/conf.d/default.conf。使用 resolver + 变量 proxy_pass避免 Podman 下启动瞬间 host not found in upstream
# 再写入 /etc/nginx/conf.d/default.conf。web/api 仍用变量 proxy_pass + resolverPodman 下动态解析)
# admin 使用 upstream + proxy_pass …/ 可正确去掉 /admin 前缀;勿用变量 proxy_pass否则会把 /admin/assets/… 原样传到上游 → 白屏。
upstream yh_admin_upstream {
server admin:80;
}
server {
listen 443 ssl;
@@ -8,7 +13,6 @@ server {
server_name yuheng.yuxindazhineng.com;
client_max_body_size 800m;
# valid 宿 DNS compose 502 entrypoint 127.0.0.11
resolver @@NGINX_RESOLVER@@ valid=300s ipv6=off;
ssl_certificate /etc/ssl/yh_web/yuheng.yuxindazhineng.com/fullchain.pem;
@@ -18,7 +22,6 @@ server {
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384;
# 443 yh_web alias 403
location ~ ^/[A-Za-z0-9._-]+\.(txt|html|xml)$ {
root /verify-root;
try_files $uri =404;
@@ -26,27 +29,9 @@ server {
add_header Cache-Control "no-store";
}
# proxy_pass location URI /admin/assets/... /assets/ index.html
# rewrite /admin /api/ api /api
location / {
set $upstream_web web;
proxy_pass http://$upstream_web:80;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /admin/ {
rewrite ^/admin/(.*)$ /$1 break;
set $upstream_admin admin;
proxy_pass http://$upstream_admin:80;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# location / web
location = /admin {
return 301 /admin/;
}
location /api/ {
@@ -58,4 +43,24 @@ server {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# proxy_pass / /admin /assets//index.html
location /admin/ {
proxy_pass http://yh_admin_upstream/;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location / {
set $upstream_web web;
proxy_pass http://$upstream_web:80;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}