Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Can't get Synchrony to start with Confluence & Apache SSL

Joe Mallon
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
June 7, 2019

I've got Confluence 6.15.4 on CentOS 7 with Apache 2.4.39 as a front end so I can serve Confluence via SSL. Synchrony will not start properly, so collaborative editing doesn't work.

Confluence server.xml connectors (8091 added to get Synchrony port working):

<Connector port="8091" connectionTimeout="20000"
maxThreads="48" minSpareThreads="10"
enableLookups="false" acceptCount="10" debug="0" URIEncoding="UTF-8"
protocol="org.apache.coyote.http11.Http11NioProtocol"/>

<Connector port="8090" connectionTimeout="20000" redirectPort="443" proxyPort="443"
maxThreads="150" minSpareThreads="25" proxyName="confluence.wrs.com"
enableLookups="false" acceptCount="10" debug="0" URIEncoding="UTF-8" scheme="https"
protocol="org.apache.coyote.http11.Http11NioProtocol"/>

Apache configuration:

<VirtualHost *:443>
ServerName ala-confluence-prod.wrs.com
ServerAlias ala-confluence-prod
ServerAlias confluence.wrs.com
ServerAlias confluence

ProxyRequests Off
ProxyVia Off

<Proxy *>
Require all granted
</Proxy>

ProxyPass /synchrony http://localhost:8091/synchrony
<Location /synchrony>
Require all granted
RewriteEngine on
RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC]
RewriteRule .* ws://localhost:8091%{REQUEST_URI} [P]
</Location>

ProxyPass / http://localhost:8090/
ProxyPassReverse / http://localhost:8090/

SSLEngine On
SSLCertificateFile /etc/httpd/conf.d/2019/cert.pem
SSLCertificateChainFile /etc/httpd/conf.d/2019/chain.pem
SSLCertificateKeyFile /etc/httpd/conf.d/2019/key.pem
</VirtualHost>
<VirtualHost *:80>
ServerName ala-confluence-prod.wrs.com
ServerAlias ala-confluence-prod
ServerAlias confluence.wrs.com
ServerAlias confluence

ProxyPass /synchrony http://localhost:8091/synchrony
<Location /synchrony>
Require all granted
RewriteEngine on
RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC]
RewriteRule .* ws://localhost:8091%{REQUEST_URI} [P]
</Location>

Redirect Permanent / https://ala-confluence-prod.wrs.com/
</VirtualHost>
<VirtualHost *:8090>
ServerName ala-confluence-prod.wrs.com
ServerAlias ala-confluence-prod
ServerAlias confluence.wrs.com
ServerAlias confluence

Redirect Permanent / https://ala-confluence-prod.wrs.com/
</VirtualHost>

Error if no 8091 connector in server.xml:

atlassian-confluence.log:2019-06-06 22:46:38,945 INFO
[http-nio-8090-exec-9][plugins.synchrony.config.
DefaultSynchronyConfigurationManager] retrievePublicKey [Collab editing
plugin] Could not retrieve public key for real-time collaboration service
at http://localhost:8091/synchrony/jwt-key with exception: Connect to
localhost:8091 [localhost/127.0.0.1] failed: Connection refused
(Connection refused)

Error if I add a 8091 connector in server.xml:

atlassian-confluence.log:2019-06-06 22:55:13,965 INFO
[ThreadPoolAsyncTaskExecutor::Thread 31]
[plugins.synchrony.bootstrap.DefaultSynchronyProxyMonitor] <init>
synchrony-proxy healthcheck url:
http://127.0.0.1:8091/synchrony-proxy/healthcheck

atlassian-confluence.log:2019-06-06 22:55:19,592 WARN [Catalina-utility-1]
[impl.util.tomcat.DefaultTomcatConfigHelper] getHttpConnector Expected
exactly one HTTP connector in Tomcat configuration, but found
[Standalone:type=Connector,port=8090, Standalone:type=Connector,port=8091]

atlassian-confluence.log:2019-06-06 22:55:20,368 WARN [Catalina-utility-1]
[impl.util.tomcat.DefaultTomcatConfigHelper] getHttpConnector Expected
exactly one HTTP connector in Tomcat configuration, but found
[Standalone:type=Connector,port=8090, Standalone:type=Connector,port=8091]

atlassian-confluence.log:2019-06-06 22:55:33,088 WARN
[StartEventPublisher:thread-1] [impl.util.tomcat.DefaultTomcatConfigHelper]
getHttpConnector Expected exactly one HTTP connector in Tomcat
configuration, but found [Standalone:type=Connector,port=8090,
Standalone:type=Connector,port=8091]

atlassian-confluence.log:2019-06-06 22:56:14,929 INFO
[http-nio-8090-exec-20] [plugins.synchrony.config.
DefaultSynchronyConfigurationManager] retrievePublicKey [Collab editing
plugin] Could not retrieve public key for real-time collaboration
service at http://localhost:8091/synchrony/jwt-key. Status code: 404

Can anyone help me solve this issue?

1 answer

0 votes
Edwin Kyalangalilwa
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
June 7, 2019

Hi @Joe Mallon ,

Synchrony should start by itself, no additional connector for 8091 should be configured.

Please confirm that you have enabled mod_proxy_wstunnel in Apache to allow websockets.

Joe Mallon
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
June 7, 2019

That module is enabled and loaded, according to the output of apachectl.

Joe Mallon
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
June 7, 2019

There is also a mention in the docs about the Synchrony health check needing an HTTP connector. I'm not sure how to supply that, when I'm running via HTTPS.

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events