I am still trying to figure out why guacamole is not working. I looked at the journalctl output, but found nothing suspicious (see below for startup journal messages). When I look at the output of journalctl after attempting to use guacamole from a browser (i.e., http://<server external dns name>:<external NAT port>/guacamole), there is nothing in the output from tomcat, guacamole or apache.
Can anyone more experienced than I see something that might give a clue what is going wrong? The response at the browser when attempting to access guacamole is: Not Found The requested URL was not found on this server. Apache/2.4.29 (Ubuntu) Server at <DNS name> Port XXXXX (I have changed the DNS name and external port number). Is it possible that guacamole is getting confused because the internal port seen by apache (i.e., 4443) is not the internal port used by NAT (i.e., 443). Also, is it possible that the from address that tomcat sees is 127.0.01 might confuse it when responding to the request? Journalctl output: Dec 19 09:54:31 Mount tomcat9[2234]: NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED Dec 19 09:54:32 Mount tomcat9[2234]: Match [Server/Service/Engine/Host/Valve] failed to set property [remoteIpProxiesHeader] to [x-forwarded-by] Dec 19 09:54:32 Mount tomcat9[2234]: Server version name: Apache Tomcat/9.0.16 (Ubuntu) Dec 19 09:54:32 Mount tomcat9[2234]: Server built: Mar 29 2022 15:05:11 UTC Dec 19 09:54:32 Mount tomcat9[2234]: Server version number: 9.0.16.0 Dec 19 09:54:32 Mount tomcat9[2234]: OS Name: Linux Dec 19 09:54:32 Mount tomcat9[2234]: OS Version: 4.15.0-200-generic Dec 19 09:54:32 Mount tomcat9[2234]: Architecture: i386 Dec 19 09:54:32 Mount tomcat9[2234]: Java Home: /usr/lib/jvm/java-11-openjdk-i386 Dec 19 09:54:32 Mount tomcat9[2234]: JVM Version: 11.0.17+8-post-Ubuntu-1ubuntu218.04 Dec 19 09:54:32 Mount tomcat9[2234]: JVM Vendor: Ubuntu Dec 19 09:54:32 Mount tomcat9[2234]: CATALINA_BASE: /var/lib/tomcat9 Dec 19 09:54:32 Mount tomcat9[2234]: CATALINA_HOME: /usr/share/tomcat9 Dec 19 09:54:32 Mount tomcat9[2234]: Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED Dec 19 09:54:32 Mount tomcat9[2234]: Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED Dec 19 09:54:32 Mount tomcat9[2234]: Command line argument: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED Dec 19 09:54:32 Mount tomcat9[2234]: Command line argument: -Djava.util.logging.config.file=/var/lib/tomcat9/conf/logging.properties Dec 19 09:54:32 Mount tomcat9[2234]: Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager Dec 19 09:54:32 Mount tomcat9[2234]: Command line argument: -Djava.awt.headless=true Dec 19 09:54:32 Mount tomcat9[2234]: Command line argument: -XX:+UseG1GC Dec 19 09:54:32 Mount tomcat9[2234]: Command line argument: -Djdk.tls.ephemeralDHKeySize=2048 Dec 19 09:54:32 Mount tomcat9[2234]: Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources Dec 19 09:54:32 Mount tomcat9[2234]: Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 Dec 19 09:54:32 Mount tomcat9[2234]: Command line argument: -Dignore.endorsed.dirs= Dec 19 09:54:32 Mount tomcat9[2234]: Command line argument: -Dcatalina.base=/var/lib/tomcat9 Dec 19 09:54:32 Mount tomcat9[2234]: Command line argument: -Dcatalina.home=/usr/share/tomcat9 Dec 19 09:54:32 Mount tomcat9[2234]: Command line argument: -Djava.io.tmpdir=/tmp Dec 19 09:54:32 Mount tomcat9[2234]: Loaded APR based Apache Tomcat Native library [1.2.21] using APR version [1.6.3]. Dec 19 09:54:32 Mount tomcat9[2234]: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true]. Dec 19 09:54:32 Mount tomcat9[2234]: APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true] Dec 19 09:54:32 Mount tomcat9[2234]: OpenSSL successfully initialized [OpenSSL 1.1.1 11 Sep 2018] Dec 19 09:54:32 Mount tomcat9[2234]: Initializing ProtocolHandler ["http-nio-8080"] Dec 19 09:54:32 Mount tomcat9[2234]: Server initialization in [1,056] milliseconds Dec 19 09:54:32 Mount tomcat9[2234]: Starting service [Catalina] Dec 19 09:54:32 Mount tomcat9[2234]: Starting Servlet engine: [Apache Tomcat/9.0.16 (Ubuntu)] Dec 19 09:54:32 Mount tomcat9[2234]: Deploying deployment descriptor [/etc/tomcat9/Catalina/localhost/manager.xml] Dec 19 09:54:32 Mount tomcat9[2234]: The path attribute with value [/manager] in deployment descriptor [/etc/tomcat9/Catalina/localhost/manager.xml] has been ignored Dec 19 09:54:34 Mount tomcat9[2234]: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. Dec 19 09:54:34 Mount tomcat9[2234]: Deployment of deployment descriptor [/etc/tomcat9/Catalina/localhost/manager.xml] has finished in [1,843] ms Dec 19 09:54:34 Mount tomcat9[2234]: Deploying deployment descriptor [/etc/tomcat9/Catalina/localhost/host-manager.xml] Dec 19 09:54:34 Mount tomcat9[2234]: The path attribute with value [/host-manager] in deployment descriptor [/etc/tomcat9/Catalina/localhost/host-manager.xml] has been ignored Dec 19 09:54:35 Mount tomcat9[2234]: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. Dec 19 09:54:35 Mount tomcat9[2234]: Deployment of deployment descriptor [/etc/tomcat9/Catalina/localhost/host-manager.xml] has finished in [1,029] ms Dec 19 09:54:35 Mount tomcat9[2234]: Deploying web application archive [/var/lib/tomcat9/webapps/guacamole.war] Dec 19 09:54:38 Mount tomcat9[2234]: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. Dec 19 09:54:38 Mount tomcat9[2234]: 09:54:38.315 [main] INFO o.a.g.environment.LocalEnvironment - GUACAMOLE_HOME is "/etc/guacamole". Dec 19 09:54:38 Mount tomcat9[2234]: 09:54:38.441 [main] INFO o.a.g.rest.auth.HashTokenSessionMap - Sessions will expire after 60 minutes of inactivity. Dec 19 09:54:38 Mount tomcat9[2234]: 09:54:38.673 [main] INFO o.a.g.environment.LocalEnvironment - GUACAMOLE_HOME is "/etc/guacamole". Dec 19 09:54:40 Mount tomcat9[2234]: 09:54:40.421 [main] INFO o.a.g.extension.ExtensionModule - Extension "MySQL Authentication" loaded. Dec 19 09:54:40 Mount tomcat9[2234]: 09:54:40.424 [main] INFO o.a.g.environment.LocalEnvironment - GUACAMOLE_HOME is "/etc/guacamole". Dec 19 09:54:40 Mount tomcat9[2234]: 09:54:40.584 [main] INFO o.a.g.t.w.WebSocketTunnelModule - Loading JSR-356 WebSocket support... Dec 19 09:54:41 Mount tomcat9[2234]: Registering org.apache.guacamole.rest.RESTExceptionMapper as a provider class Dec 19 09:54:41 Mount tomcat9[2234]: Registering org.apache.guacamole.rest.extension.ExtensionRESTService as a root resource class Dec 19 09:54:41 Mount tomcat9[2234]: Registering org.apache.guacamole.rest.language.LanguageRESTService as a root resource class Dec 19 09:54:41 Mount tomcat9[2234]: Registering org.apache.guacamole.rest.patch.PatchRESTService as a root resource class Dec 19 09:54:41 Mount tomcat9[2234]: Registering org.apache.guacamole.rest.auth.TokenRESTService as a root resource class Dec 19 09:54:41 Mount tomcat9[2234]: Registering org.apache.guacamole.rest.session.SessionRESTService as a root resource class Dec 19 09:54:41 Mount tomcat9[2234]: Registering org.codehaus.jackson.jaxrs.JacksonJsonProvider as a provider class Dec 19 09:54:41 Mount tomcat9[2234]: Initiating Jersey application, version 'Jersey: 1.17.1 02/28/2013 12:47 PM' Dec 19 09:54:41 Mount tomcat9[2234]: Binding org.apache.guacamole.rest.RESTExceptionMapper to GuiceManagedComponentProvider with the scope "Singleton" Dec 19 09:54:41 Mount tomcat9[2234]: Binding org.codehaus.jackson.jaxrs.JacksonJsonProvider to GuiceManagedComponentProvider with the scope "Singleton" Dec 19 09:54:42 Mount tomcat9[2234]: Binding org.apache.guacamole.rest.extension.ExtensionRESTService to GuiceManagedComponentProvider with the scope "PerRequest" Dec 19 09:54:42 Mount tomcat9[2234]: Binding org.apache.guacamole.rest.language.LanguageRESTService to GuiceManagedComponentProvider with the scope "PerRequest" Dec 19 09:54:42 Mount tomcat9[2234]: Binding org.apache.guacamole.rest.patch.PatchRESTService to GuiceManagedComponentProvider with the scope "PerRequest" Dec 19 09:54:42 Mount tomcat9[2234]: Binding org.apache.guacamole.rest.auth.TokenRESTService to GuiceManagedComponentProvider with the scope "PerRequest" Dec 19 09:54:42 Mount tomcat9[2234]: Binding org.apache.guacamole.rest.session.SessionRESTService to GuiceManagedComponentProvider with the scope "PerRequest" Dec 19 09:54:42 Mount tomcat9[2234]: WebjarsServlet initialization completed Dec 19 09:54:42 Mount tomcat9[2234]: Deployment of web application archive [/var/lib/tomcat9/webapps/guacamole.war] has finished in [6,444] ms Dec 19 09:54:42 Mount tomcat9[2234]: Deploying web application directory [/var/lib/tomcat9/webapps/ROOT] Dec 19 09:54:43 Mount tomcat9[2234]: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. Dec 19 09:54:43 Mount tomcat9[2234]: Deployment of web application directory [/var/lib/tomcat9/webapps/ROOT] has finished in [1,042] ms Dec 19 09:54:43 Mount tomcat9[2234]: Starting ProtocolHandler ["http-nio-8080"] Dec 19 09:54:43 Mount tomcat9[2234]: Server startup in [10,492] milliseconds (END)