目前我使用API网关作为一种代理来简单地提供https
https://random-aws-name.com => http://my-domain.com
路线是
$default
集成设置是
HTTP ANY -> http://my-domain.com
我现在必须在我的域上设置一个 Websocket 服务器,该服务器已经在 ws://my-domain.com 上监听。我可以直接连接到此套接字,但不使用 AWS API Gateway
wss://random-aws-name.com => ws://my-domain.com
目前我使用 wscat 遇到意外错误 400
我尝试启用 API 网关日志记录,但没有看到任何日志到达
恕我直言,AWS API Gateway 只能提供 wss 端点并将请求路由到HTTP 后端。如果我们已经有后端 Websocket 服务器,我在 AWS API Gateway 中看不到执行此类路由的选项(尽管我很高兴被证明是错误的,因为我自己也有这样的要求。)。
我实际上尝试将 wss:// url 作为端点 URL,但在部署 API 时出现错误,提示
Invalid HTTP endpoint specified for URI
您当前使用的 API 网关很可能不是 WebSocket API,而是 HTTP API 或 REST API。 API网关有不同的风格。部署时您可以选择一种口味。您部署的风格很可能不是支持 WebSocket 连接的风格。
根据此文档页面,代理的 WebSocket 连接可能只是单向的(请注意页面底部的蓝色框中):https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket- api-routes-integrations.html
使用 Apache2 como 代理。
ServerAdmin pedro.casas@********
DocumentRoot /var/www/**************
ServerAlias dominio.com
SSLEngine on
SSLCertificateFile /etc/ssl/****.crt
SSLCertificateKeyFile /etc/ssl/****.key
SSLCertificateChainFile /etc/ssl/****.ca-bundle
SSLProxyEngine on
ProxyRequests Off
ProxyPass "/wss/" "ws://xxx.xxx.xxx.xxx:3000/"
ProxyPassReverse "/wss/" "ws://xxx.xxx.xxx.xxx:3000/"