fix(deploy): nginx 上游运行期重新解析 + 就绪探针;内存上限按 8C/32G 重新分配
mirror-to-gitee / mirror (push) Successful in 9s

问题:容器重建换 IP 后,网关与 admin-ui 仍往旧 IP 打,/openapi 与 /api
整片 502,必须手动重启 nginx 容器才恢复(2026-11-03 实机踩到)。

编排
- admin-svr / openapi / admin-ui / docs 增加 healthcheck
- admin-ui、gateway、nginx 改 depends_on: condition: service_healthy,
  保证 nginx 启动时后端已就绪
- 新增 deploy/compose.memlimit.yml(原来只存在于某台演示机上):
  全套上限 8.5G、实测常驻 2G,留给同机其它服务 20G+;
  MySQL buffer pool 128M→768M、max_connections 151→300

nginx
- gateway / admin-ui / iotlcm.conf 示例 统一改 resolver 127.0.0.11 valid=10s
  + upstream zone/resolve:运行期跟随 IP 变化,不必重启(实测 6s 内自愈)
This commit is contained in:
MiFaZhan
2026-11-03 10:40:48 +08:00
parent 70749bea7a
commit e98f8561f7
5 changed files with 255 additions and 18 deletions
+7 -1
View File
@@ -1,3 +1,9 @@
# DNS 解析:nginx 只在启动时解析一次 upstream 主机名,admin-svr 重建换 IP 后
# /api/ 会一直 502。127.0.0.11 是 Docker 内置 DNS,resolve + zone 让运行期自动跟随。
resolver 127.0.0.11 valid=10s ipv6=off;
upstream gw_admin_svr { zone gw_admin_svr 64k; server admin-svr:8008 resolve; }
server {
listen 80;
root /usr/share/nginx/html;
@@ -40,7 +46,7 @@ server {
proxy_set_header Upgrade $http_upgrade;
proxy_http_version 1.1;
chunked_transfer_encoding off;
proxy_pass http://admin-svr:8008/api/v1/;
proxy_pass http://gw_admin_svr/api/v1/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;