介绍
我使用converse.js作为 XMPP 网络客户端。因此我需要一个处理双向通信的 bosh 服务器。因此,服务器充当node-xmpp-bosh。由于我的网站是 SSL/TLS 加密的,并且只能通过 https 访问,因此只能通过加密通信连接到 bosh 服务器。不幸的是 node-xmpp-bosh 不支持 SSL/TLS。
问题
我可以通过某种方式转发流量来规避这个问题吗?还是我迷路了,需要搜索另一个 bosh 服务器?
我使用converse.js作为 XMPP 网络客户端。因此我需要一个处理双向通信的 bosh 服务器。因此,服务器充当node-xmpp-bosh。由于我的网站是 SSL/TLS 加密的,并且只能通过 https 访问,因此只能通过加密通信连接到 bosh 服务器。不幸的是 node-xmpp-bosh 不支持 SSL/TLS。
我可以通过某种方式转发流量来规避这个问题吗?还是我迷路了,需要搜索另一个 bosh 服务器?
几个小时后......再次快乐:)
我的问题的解决方案是将流量代理到 bosh 服务器。要在 Apache 上执行此操作,我现在(或至少目前)使用此 VirtualHost 配置:
<VirtualHost *:443>
ServerName bosh.domain.tld
ServerAlias www.bosh.domain.tld
ServerAdmin admin@domain.tld
<Proxy *>
Order allow,deny
Allow from all
</Proxy>
ProxyPass / http://127.0.0.1:5280/http-bind/
ProxyPassReverse / http://127.0.0.1:5280/http-bind/
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/domain.tld/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/domain.tld/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/domain.tld/chain.pem
SSLVerifyClient None
# HSTS (mod_headers is required) (15768000 seconds = 6 months)
Header always set Strict-Transport-Security "max-age=15768000"
</VirtualHost>