![使用 AWS 的 TCP 端口映射/代理](https://linux22.com/image/733666/%E4%BD%BF%E7%94%A8%20AWS%20%E7%9A%84%20TCP%20%E7%AB%AF%E5%8F%A3%E6%98%A0%E5%B0%84%2F%E4%BB%A3%E7%90%86.png)
我在单个 AWS 实例的不同端口上运行了多项服务:
- 兔子:5672
- rabbitMQ :15672
- 弹性 :9200
- 其他一些
我在 AWS 上有一个 jumpbox,用于处理所有传入请求。我研究过 jumpbox 上的 HAProxy,但纯 AWS 解决方案会更好。
这里的最终目标是根据子域将标准端口上的传入请求指向内部可能独立的实例或具有不同端口的同一实例:
例如。
请求staging.example.com:5672
将转到实例A:5672
请求development.example.com:5672
将前往A:5673
我正在寻找使用 AWS 堆栈的解决方案,但很难找到适用的解决方案。由于 rabbit 使用 amqp 协议,因此 http 主机名解析似乎不是一种选择,而且据我所知,使用 ELB 没有简单的直接的 coming_hostname:incoming_port -> instance:port 映射,但我对 AWS 堆栈还很陌生。
答案1
唯一“可能”能满足您需求的就是使用 ELB+Lambda 来处理这些请求,但这不值得付出努力。
正确的方法是使用您已经提到的 nginx 或 haproxy。