由于底层的Nginx实现,Kong支持WebSocket流量。当您希望通过Kong在客户端和上游服务之间建立WebSocket连接时,您必须建立WebSocket握手。这是通过HTTP升级机制完成的。这是您的客户端向Kong发出的请求的样子:
GET / HTTP/1.1
Connection: Upgrade
Host: my-websocket-api.com
Upgrade: WebSocket
这将使Kong转发连接并将请求头上升至上游服务,而不是由于标准HTTP代理的hop-by-hop特性而取消它们。
WebSocket和TLS
Kong将在其各自的http和https端口上接受ws和wss连接。若要强制执行来自客户端的TLS连接,请仅设置到https的路由的protocols属性。
当设置服务指向你的上游WebSocket服务时,你应该仔细选择你想在Kong和上游之间使用的协议。如果您想使用TLS (wss),那么上游WebSocket服务必须使用服务协议属性中的https协议和适当的端口(通常为443)来定义。要在不使用TLS (ws)的情况下进行连接,则应该在协议中使用http协议和端口(通常为80)。如果您希望Kong终止TLS,那么您可以只接受来自客户机的wss,而是通过明文(或ws)接收上游服务的代理。
本文暂时没有评论,来添加一个吧(●'◡'●)