问题描述

Confluence 无法创建和编辑页面

通常是协同编辑引起的问题

问题排查和解决


协同编辑由 Synchrony 提供支持,可实时同步数据。 一般情况下不需要管理员手动管理。

此页面将帮助您解决实例中的同步问题。 

第一步

检查同步是否正在运行

要检查同步是否正在运行,请转到   >一般配置  >  协同编辑 。 

注意:如果您正在运行 Confluence Data Center,此页面将只能告诉您当前 Confluence 节点是否已连接到您的 Synchrony 集群。您可能希望使用第三方监控工具来帮助您监控 Synchrony 集群。息

检查您是否可以编辑页面

如果您在编辑页面时看到错误,但 Synchrony 正在运行,则说明您的浏览器无法连接到 Synchrony。 

最常见的问题是配置错误的反向代理。请参阅本页后面的代理故障排除提示或前往 管理协作编辑 了解有关可能的代理和 SSL 配置的更多信息。  

检查日志

您可以在 中找到 Confluence 应用程序日志<home-directory>/logs/atlassian-confluence.log 和在 中找到同步特定日志   <home-directory>/logs/atlassian-synchrony.log 

重启同步

如果 Synchrony 由 Confluence 管理,请转到  >一般配置 >协作编辑并选择 重新启动同步。  

如果您运行自己的独立 Synchrony 集群,请在每个节点上手动重新启动 Synchrony。 

检查端口 8091 是否可用

默认情况下,同步在端口 8091 上运行。如果此端口已被服务器上的另一个应用程序使用,您可以使用 synchrony.port系统属性将其更改为可用端口。  

(如果您使用的是 Confluence 6.0.3 或更早版本,则需要使用reza.port而不是synchrony.port.)

看 配置系统属性 了解如何改变这一点。 

对于 Confluence Data Center,您运行 Synchrony 的方式略有不同。看 配置同步了解更多信息。

反向代理问题

如果您已配置反向代理,但无法编辑页面,请检查您的配置:

  • 转到installation-directory>/conf/server.xml  并检查Connector 指令。确保<protocol> 和的值正确<proxyName>。有关详细信息,请参阅以下指南中的示例。  
  • 连接器 http 始终需要存在于 <installation-directory>/conf/server.xml 文件中,即使您正在配置 SSL 或使用 AJP 连接器。同步运行状况检查使用 HTTP,如果此连接器不存在,将失败。或者,如果您不想包含 http 连接器,则可以使用 synchrony.proxy.healthcheck.disabled系统属性来禁用运行状况检查。 
  • 如果您使用的是 Apache,请确保您使用的是 Apache 2.4(支持 WebSockets)并且所有必需的模块都已启用(mod-proxy、  mod_rewrite、  proxy_wstunnel)。
  • 如果您使用 Apache 并希望直接连接到 Synchrony,请确保在您的代理配置文件中包含/synchrony 并且 Confluence 和 Synchrony 指令和位置块的顺序是正确的。有关详细信息,请参阅以下指南中的示例。 

看 管理协作编辑 要了解有关可能的代理和 SSL 配置的更多信息,请查看以下指南以获取有关如何在反向代理配置中包含 Synchrony 的更多信息,如果您想直接连接到 Synchrony:

转发代理问题

如果您使用的是转发或出站代理,则需要将 Synchrony 侦听的 IP 添加到您的配置中以确保绕过它。看 为 Confluence 配置 Web 代理支持 了解更多信息。

默认情况下,IP 是 127.0.0.1,或者 synchrony.host 如果您自定义了 Confluence 用来连接到 Synchrony 的主机名或 IP,它将是系统属性的值。 

Websocket 问题

协作编辑 最适合使用 WebSocket 连接。如果由于超时或代理服务器或防火墙不允许 WebSocket 连接而无法建立,编辑器将尝试通过 XML HTTP 请求 (XHR) 进行连接。

您可以使用 http://websocket.org/echo.html针对回显服务器 执行快速 HTML5 WebSocket 测试。

可以使用浏览器中的开发人员工具验证 websocket 连接。在以下示例中,我们将使用 Chrome 来检查 websocket 连接:


  1. 打开 Chrome 开发者工具 (Shift  +  CTRL  + J)
  2. 选择 网络 选项卡
  3. 选择 WS 过滤器以仅显示 WebSocket 流量
  4. 编辑 Confluence 页面
  5. 选择 websocket 连接: ws://<confluence-url>/synchrony-proxy/v1/bayeux-sync1
  6. 选择 Frames/Messages 选项卡以查看浏览器和 WebSocket 之间的流量。

SSL 问题

Synchrony 不能接受直接的 HTTPS 连接,因此您需要在反向代理或负载均衡器上终止 SSL,如果您不使用反向代理,则需要在 Tomcat 上终止。

内存问题

synchrony.memory.max 如果您遇到与 Synchrony 相关的内存不足错误,您可以使用系统属性更改分配给 Synchrony 的堆大小 。

如果您是 Confluence 6.0.3 或更早版本,则需要reza.memory.max使用synchrony.memory.max.

看 配置系统属性 了解如何改变这一点。  

对于 Confluence Data Center,您运行 Synchrony 的方式略有不同。看 配置同步了解更多信息。

多个同步进程

如果您在编辑器中立即看到错误,但 Confluence 报告 Synchrony 正在运行,请检查以确保您只有一个 Synchrony 进程正在运行。 

如果您确实有多个同步进程正在运行,请停止 Confluence,终止其他同步进程,然后重新启动 Confluence。

stop-confluence.sh 你可以通过始终使用/来停止 Confluence来避免这个问题stop-confluence.bat ,而不是简单地关闭 Tomcat 窗口。 

集群中的混合同步模式

如果您在集群中运行 Confluence,您的所有 Confluence 节点必须以相同的方式连接到 Synchrony。

如果用户可以在一个 Confluence 节点上使用协作编辑,但不能在另一个 Confluence 节点上使用,请转到  >一般配置 > 聚类,然后在每个节点上选择 协作编辑。 

确保所有 Confluence 节点都报告相同的同步模式 - 由 Confluence 管理或独立同步集群。 

您可以通过这种方式访问​​所有节点,无需在浏览器中点击特定节点。

不兼容的浏览器扩展

与编辑器交互的某些第三方浏览器扩展(例如 Grammarly)可能无法在协作编辑中正常运行。看 Confluence 协作编辑阻止语法扩展 了解如何仅为您的 Confluence 站点禁用 Grammarly。

防火墙或防病毒干扰

我们收到了一些关于防火墙或防病毒软件阻止对服务器的某些请求的报告,导致编辑器出现意外行为。如果您遇到问题,您可能需要将 Confluence 添加到您的白名单/受信任的 URL。看 卡巴斯基安全软件的奇怪页面或编辑器行为 了解更多信息。

编辑器人太多

最多 12 人可以同时编辑一个页面。这意味着如果已经有 12 个人在编辑页面,则无法进入编辑器,需要等到有人离开。  

管理员可以使用 confluence.collab.edit.user.limit 系统属性增加或减少此限制。


参考文档

https://confluence.atlassian.com/doc/troubleshooting-collaborative-editing-858772087.html