为部署准备 Web Host
配置 Listener 与 Limit,并区分 Lenso Ingress 保证和 Host 持有的 TLS、打包及拓扑责任。
Lenso Web 提供面向生产的 HTTP 边界,但不提供通用 Deploy Command。Application Host 仍然持有 Executable/Container、TLS Termination、Process Manager、Environment、 Rollout 与网络拓扑。
从私有 Listener 开始
Ingress 默认使用 Loopback 临时端口,适合测试与嵌入。部署的 Host 应显式选择固定 Address:
bind_address = "127.0.0.1:8080"
max_request_body_bytes = 1048576
max_request_head_bytes = 16384
max_concurrent_requests = 128
request_timeout_millis = 30000
在同机 Reverse Proxy 后使用 127.0.0.1。只有 Host 网络策略明确需要暴露 Listener
时才绑定 0.0.0.0。Public Bind 是有效配置,但不能证明 Firewall、Tenancy 或 TLS
Policy 正确。
把 TLS 与拓扑放在 Host 环境
当前维护的 Ingress 提供 HTTP/1.1 与 Cleartext HTTP/2 Prior Knowledge,不负责 TLS Termination。Reverse Proxy、Load Balancer、Service Mesh 或 Embedding Host 应持有 Certificate 与外部 HTTPS Listener。
Internet -> HTTPS Proxy/Load Balancer -> Cleartext Private Ingress -> Endpoint Plugins
Replica 与外部 Load Balancing 也由部署策略决定。在一个 Multi-lane App 内,Ingress 会协调一个已绑定 Socket,并只向 Ready Replica 分发;不要让每个 Lane 独立绑定同一 Port。
理解 Readiness 证明什么
App Ready Gate 打开前,Ingress 会从显式绑定的 Endpoint Provider 收集不可变 Route Table。重复的准确 Route 与语义 Path Shape Collision 会让启动失败。配置 Limit 也会 在开始 Serving 前完成验证。
对即将交付的准确 Plugin Root 执行组合检查:
lenso plugins list --root ./my-app
lenso app show --root ./my-app
lenso app check --root ./my-app
这些命令证明 Composition,不证明远端可达性。Lenso Web 不会自动加入通用
/health Endpoint;Product Host 必须提供部署平台需要的 Health/Readiness Contract。
保留 Shutdown 与 Request 边界
Ingress 持有全局 Concurrency Admission、Request Body/Head Limit、单个 Endpoint Deadline、Disconnect Cancellation 与协作式 App Shutdown。超过配置边界的 Request 会在 Transport 层失败,不会进入业务代码。
Process Manager 应发送 Host 支持的 Graceful-shutdown Signal,并留出足够时间完成有 边界的 Request Deadline。不要通过重启 Listener 来注册 Route:Route 变化应通过新的 Ready Generation 生效。
部署检查表
- 交付的 Host Catalog 只包含预期 Endpoint Provider 与 Binding。
- 使用生产 Plugin 配置时,
lenso app check通过。 - Public Exposure、TLS、Forwarded-header Policy 与 Firewall Rule 由部署环境持有并测试。
- Auth 与 Secrets 都是显式 Binding;Ingress 配置中没有 Credential。
- Body、Head、Concurrency 与 Timeout Limit 符合真实工作负载。
- 真实 Socket 测试覆盖成功、过载、超时、取消、Route Collision 与 Graceful Shutdown。
- Rollout 平台拥有 Product 自己的 Health/Readiness Endpoint 与 Rollback Path。
当前没有 Framework-owned Dockerfile、Kubernetes Chart 或通用 lenso deploy Workflow。
这些 Artifact 应放在了解真实 Host、Registry、Secret 与拓扑的产品仓库中。