问题描述
我在LAN上安装了VM,并安装了Ubuntu 20.04和zammad Community。我们使用Synology Application Portal(使用Nginx的反向代理)从外部访问它,这也起作用。
但是zammad的功能是Livechat,它使用Websockets来工作,这就是问题,Websockets不起作用,Chat不会在我们的主网站(托管在外部)上初始化。
这是加载实时聊天时网站上的 JavaScript控制台中的错误:

解决方法
解决方案是通过添加一些自定义标头来在Synology Application Portal条目上启用Websocket通信。
-
在DSM中,打开“应用程序门户”标签下的“控制面板”
-
选择要启用Websockets的应用程序
-
转到“自定义标题”标签
-
添加这两个条目:
“升级” ,值为“ $ http_upgrade”
“连接” ,值为“ $ connection_upgrade”
请注意,在DSM 6的最新更新中,已经准备了一个规则集,该规则集在“添加”按钮下可用。它将为您创建规则。