Hi,
I've been using Confluence for about 4 years now in one way or another, and I have a personal Confluence Cloud instance.
Yesterday I bought a license for a server-hosted instance of Confluence that I want to use for my DigitalOcean-hosted online business (https://www.rhymecraft.guru/).
I was able to install it and get it running, but:
1. It's accessible at the DigitalOcean server's IP address (http://XXX.XX.XXX.XX), but not at the https-forcing (via Cloudflare) domain name that points to that IP address (https://www.rhymecraft.guru).
2. I want the wiki to be accessed at https://www.rhymecraft.guru/wiki, without needing to use a port number as part of the URL (so I guess that would mean making it work on port 443 for HTTPS).
At one point I was able to get it working at http://XXX.XX.XXX.XX/wiki (so, using port 80 and being at /wiki), but somehow I've broken something since then, and even that's not working now.
rhymecraft.conf: (Apache config)
WSGIDaemonProcess rhymecraft.guru processes=2 threads=15 display-name=%{GROUP}
WSGIProcessGroup rhymecraft.guru
<VirtualHost *:80>
ServerName www.rhymecraft.guru
ServerAlias rhymecraft.guru
ServerAdmin nathan.wailes@gmail.com
# The proxy stuff below is for Confluence
# See https://confluence.atlassian.com/kb/proxying-atlassian-server-applications-with-apache-http-server-mod_proxy_http-806032611.html
ProxyRequests Off
<Proxy *>
Require all granted
</Proxy>
ProxyPass /synchrony http://127.0.0.1:8091/synchrony
<Location /synchrony>
Require all granted
RewriteEngine on
RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC]
RewriteRule .* ws://127.0.0.1:8091%{REQUEST_URI} [P]
</Location>
ProxyPass /wiki http://127.0.0.1/wiki
ProxyPassReverse /wiki http://127.0.0.1/wiki
<Location /wiki>
Require all granted
</Location>
Alias /blog /var/www/html
WSGIScriptAlias / /var/www/rhymecraft/server/rhymecraft.wsgi
DocumentRoot /var/www/rhymecraft/server
Alias /robots.txt /var/www/rhymecraft/server/robots.txt
Alias /favicon.ico /var/www/rhymecraft/server/robots.txt
<Directory /var/www/rhymecraft/server>
Order allow,deny
Allow from all
</Directory>
Alias /static /var/www/rhymecraft/server/static
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =www.rhymecraft.guru [OR]
RewriteCond %{SERVER_NAME} =rhymecraft.guru
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
<VirtualHost *:443>
ServerName www.rhymecraft.guru
ServerAlias rhymecraft.guru
ServerAdmin nathan.wailes@gmail.com
# The proxy stuff below is for Confluence
# See https://confluence.atlassian.com/kb/proxying-atlassian-server-applications-with-apache-http-server-mod_proxy_http-806032611.html
ProxyRequests Off
<Proxy *>
Require all granted
</Proxy>
ProxyPass /synchrony http://127.0.0.1:8091/synchrony
<Location /synchrony>
Require all granted
RewriteEngine on
RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC]
RewriteRule .* ws://127.0.0.1:8091%{REQUEST_URI} [P]
</Location>
ProxyPass /wiki http://127.0.0.1/wiki
ProxyPassReverse /wiki http://127.0.0.1/wiki
<Location /wiki>
Require all granted
</Location>
Alias /blog /var/www/html
WSGIScriptAlias / /var/www/rhymecraft/server/rhymecraft.wsgi
DocumentRoot /var/www/rhymecraft/server
Alias /robots.txt /var/www/rhymecraft/server/robots.txt
Alias /favicon.ico /var/www/rhymecraft/server/robots.txt
<Directory /var/www/rhymecraft/server>
Order allow,deny
Allow from all
</Directory>
Alias /static /var/www/rhymecraft/server/static
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/rhymecraft.guru/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/rhymecraft.guru/privkey.pem
</VirtualHost>
server.xml:
<Server port="8000" shutdown="SHUTDOWN" debug="0">
<Service name="Tomcat-Standalone">
<!--
==============================================================================================================
DEFAULT - Direct connector with no proxy, for unproxied HTTP access to Confluence.
If using a http/https proxy, comment out this connector.
==============================================================================================================
-->
<Connector port="8090" connectionTimeout="20000" redirectPort="8443"
maxThreads="48" minSpareThreads="10"
enableLookups="false" acceptCount="10" debug="0" URIEncoding="UTF-8"
protocol="org.apache.coyote.http11.Http11NioProtocol"
proxyName="www.rhymecraft.guru"
proxyPort="80"
scheme="http"
/>
<!--
==============================================================================================================
HTTP - Proxying Confluence via Apache or Nginx over HTTP
If you're proxying traffic to Confluence over HTTP, uncomment the connector below and comment out the others.
Make sure you provide the right information for proxyName and proxyPort.
For more information see:
Apache - https://confluence.atlassian.com/x/4xQLM
nginx - https://confluence.atlassian.com/x/TgSvEg
==============================================================================================================
-->
<!--
<Connector port="8090" connectionTimeout="20000" redirectPort="8443"
maxThreads="48" minSpareThreads="10"
enableLookups="false" acceptCount="10" debug="0" URIEncoding="UTF-8"
protocol="org.apache.coyote.http11.Http11NioProtocol"
scheme="http" proxyName="<subdomain>.<domain>.com" proxyPort="80"/>
-->
<!--
==============================================================================================================
HTTPS - Direct connector with no proxy, for unproxied HTTPS access to Confluence.
For more info see https://confluence.atlassian.com/x/s3UC
==============================================================================================================
-->
<!--
<Connector port="8443" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25"
protocol="org.apache.coyote.http11.Http11Nio2Protocol"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLSv1.2" sslEnabledProtocols="TLSv1.2" SSLEnabled="true"
URIEncoding="UTF-8" keystorePass="<MY_CERTIFICATE_PASSWORD>"/>
-->
<!--
==============================================================================================================
HTTPS - Proxying Confluence via Apache or Nginx over HTTPS
If you're proxying traffic to Confluence over HTTPS, uncomment the connector below and comment out the others.
Make sure you provide the right information for proxyName and proxyPort.
For more information see:
Apache - https://confluence.atlassian.com/x/PTT3MQ
nginx - https://confluence.atlassian.com/x/cNIvMw
==============================================================================================================
-->
<!--
<Connector port="8090" connectionTimeout="20000" redirectPort="8443"
maxThreads="48" minSpareThreads="10"
enableLookups="false" acceptCount="10" debug="0" URIEncoding="UTF-8"
protocol="org.apache.coyote.http11.Http11NioProtocol"
scheme="https" secure="true" proxyName="<subdomain>.<domain>.com" proxyPort="443"/>
-->
<Engine name="Standalone" defaultHost="localhost" debug="0">
<Host name="localhost" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="false" startStopThreads="4">
<Context path="/wiki" docBase="../confluence" debug="0" reloadable="false" useHttpOnly="true">
<!-- Logging configuration for Confluence is specified in confluence/WEB-INF/classes/log4j.properties -->
<Manager pathname=""/>
<Valve className="org.apache.catalina.valves.StuckThreadDetectionValve" threshold="60"/>
</Context>
<Context path="${confluence.context.path}/synchrony-proxy" docBase="../synchrony-proxy" debug="0"
reloadable="false" useHttpOnly="true">
<Valve className="org.apache.catalina.valves.StuckThreadDetectionValve" threshold="60"/>
</Context>
</Host>
</Engine>
</Service>
</Server>