2.7 KiB
Nginx 443 SNI (C3 / C4)
gnet v2 has no native TLS. IM certificates live here, not in spark-server tcp.tls.
Client --TLS--> :443 ssl_preread
├─ SNI sparkapi.wyrs365.com → 127.0.0.1:8443 (HTTP TLS)
│ → proxy_pass http://127.0.0.1:18080 + X-Real-IP
├─ SNI sparkr.wyrs365.com → 127.0.0.1:8443 (HTTP TLS)
│ → proxy_pass http://127.0.0.1:9000 RustFS S3
└─ SNI sparkim.wyrs365.com → 127.0.0.1:19001 (IM TLS)
→ PROXY protocol → 127.0.0.1:9090 gnet
On this ECS, :443 is shared with other wyrs HTTPS sites. Do not replace /etc/nginx/nginx.conf. Drop-ins:
host/sparkapi.conf→/etc/nginx/conf.d/host/sparkr.conf→/etc/nginx/conf.d/(RustFS S3; DNS A recordsparkr.wyrs365.com→ this host)host/spark-sni.conf→/etc/nginx/stream.d/
Existing listen 443 ssl vhosts move to 127.0.0.1:8443 ssl proxy_protocol so SNI can take public 443. 00-spark-http.conf sets real_ip_header proxy_protocol and port_in_redirect off so $remote_addr is the client and redirects stay on 443.
spark-server (Docker):
- HTTP
127.0.0.1:18080→ container:8080 - TCP
127.0.0.1:9090withproxy_protocol: true→ container:9090(host:9000is rustfs S3; bind127.0.0.1:9000, not public) - Image / config / logs:
/data/spark-server/{images,compose,configs,logs}(镜像在本机打包后docker load) - Public security group: 443 only
- Clients upload/download at
https://sparkr.wyrs365.com(path-style). spark-server talks torustfs:9000on the Docker network and signs URLs withobject_storage.public_endpoint. - Unsigned GET is allowed only for
/perm/avatar/and/perm/group/(rewritten to/spark/...). Chat and other prefixes stay SigV4.
bash deploy/nginx/install-host.sh
http.conf / stream.conf / nginx.conf are a dedicated-box template. /readyz is loopback-only on 8443; local probes hit Gin on 127.0.0.1:18080.
popadmin 接入 V3 管理 API
popadmin 前端仍请求同源 /api/admin/*(无需改 API 常量)。在 popadmin.wyrs365.com 的 Nginx 里,把 IM/群/用户等路径转到 spark-server:
sudo cp deploy/nginx/host/popadmin-spark-admin-locations.conf /etc/nginx/conf.d/
# Aliyun 仓库 nginx-popadmin-wyrs.conf 已 include 该文件
sudo nginx -t && sudo systemctl reload nginx
确保 spark-server 容器监听 127.0.0.1:18080,且 admin.jwt_secret 与 Java WYRS_ADMIN_JWT_SECRET 一致。登录、仪表盘、configs/通讯录/相册仍走 Java :8090。