微服务的常见问题是,如果使用 AJAX 并尝试从多个主机/端口读取输入(由于跨域请求),开发它们可能会很麻烦。
我正在寻找一个可以与 Linux 一起使用的非常简单的解决方案(最好使用 python 或 socat),其中我可以在单个端口下链接几个主机/端口。
host1:port1/service1 and host2:port2/service2 ... -> localhost:port
所有远程主机/端口都可以通过同一个 localhost:port 访问。
请求应根据以下路径转发:
localhost:port/service1 -> host1:port1/service1
localhost:port/service2 -> host2:port2/service2
答案1
http 反向代理就可以了,就像这个启用了 mod_proxy 的 apache 配置一样。
Listen port
ProxyPass /service1 http://host1:port1/service1
ProxyPass /service2 http://host1:port1/service2
调度 localhost:port/service1 和 localhost:port/service2 需要了解 http 协议。服务在 tcp 层上没有区别,但是是一个 http get 请求。我不知道 socat 是否可以处理这个问题。