好消息——目前还没有发现“损坏”的地方。那个 502 几乎可以肯定是首次启动竞争:Nginx 在 Unicorn 准备好之前就尝试了你的 /srv/status。你的日志显示:
unicorn: run
- Rails 已启动

- Nginx 错误于 17:34:11 “connection refused”(可能在 Unicorn 完成之前)
我们来快速解决一下。
1) 再次尝试状态(host → app2)
curl -sSI http://127.0.0.1:8002/srv/status
- 如果仍然显示 502,只需在 app2 中重启 Nginx,然后从容器内部进行测试:
docker exec -it app2 bash -lc 'sv restart nginx & && sleep 2 && curl -sSI http://127.0.0.1/srv/status'
curl -sSI http://127.0.0.1:8002/srv/status
你应该会看到 HTTP/1.1 200 OK。