How to test if Confluence is resolving requests in a headless Linux server

Still need help?

The Atlassian Community is here for you.

Ask the community

Platform Notice: Data Center - This article applies to Atlassian products on the Data Center platform.

Note that this knowledge base article was created for the Data Center version of the product. Data Center knowledge base articles for non-Data Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.

*Except Fisheye and Crucible

Purpose

Sometimes it's necessary to test connectivity to Confluence hosted in a headless Linux environment. The methods described in this article should only be used if you have access to the headless server.

Solution

Using Telnet

  • SSH to the headless server
  • Find the listening port Confluence is listening on by opening the <Confluence Install Directory>/conf/server.xml file and finding the Connector port property. Note that you can have multiple connectors, however, the default one on newer versions of Confluence is 8090
  • Also, note the Context path variable in the server.xml. In this example we will use Context path="/confluence"
  • Make sure Telnet is available on the server and run the following: telnet <localhost> <Port where Confluence is listening on>

    telnet localhost 8090
  • You will get connection details if connecting properly:

    Trying ::1...
    Connected to localhost.
    Escape character is '^]'.
  • Run the following command and press enter 2 times: 
    GET </ContextPathNotedInPreviousSteps/> HTTP/1.1
    HOST: localhost

    Make sure to add the "/" after the context path.

    GET /confluence/ HTTP/1.1
    HOST: localhost
  • If Tomcat is resolving requests properly, you should get a response from the login page in Confluence. Note the 302 found status and /confluence/login.action page location.

    HTTP/1.1 302 Found
    Server: Apache-Coyote/1.1
    X-Confluence-Request-Time: 1469203272054
    Set-Cookie: JSESSIONID=6EBBD526BC2A2C4A252170285B4B80CD; Path=/confluence/; HttpOnly
    X-XSS-Protection: 1; mode=block
    X-Content-Type-Options: nosniff
    X-Frame-Options: SAMEORIGIN
    Content-Security-Policy: frame-ancestors 'self'
    Location: /confluence/login.action?os_destination=%2Findex.action&permissionViolation=true
    Content-Type: text/html;charset=UTF-8
    Content-Length: 0
    Date: Fri, 22 Jul 2016 16:01:12 GMT
  • On the other hand, if you get a 400 Bad Request or 404 Not Found status, Tomcat is likely not resolving requests.

    HTTP/1.1 400 Bad Request
    Server: Apache-Coyote/1.1
    Transfer-Encoding: chunked
    Date: Fri, 22 Jul 2016 16:04:23 GMT
    Connection: close

Using cURL

  • SSH to the headless server
  • Find the listening port Confluence is listening on by opening the <Confluence Install Directory>/conf/server.xml file and finding the Connector port property. Note that you can have multiple connectors, however, the default one on newer versions of Confluence is 8090.
  • Also, note the Context path variable in the server.xml. In this example we will use Context path="/confluence"
  • Make sure you have cURL installed and are able to use it from the terminal or command prompt. 
  • Run the following: curl -v <localhost>:<Port where Confluence is listening on>/<ContextPathNotedInPreviousSteps> . 

    curl -v localhost:8090/confluence
  • You will get connection details if connecting properly:

    HTTP/1.1 302 Found
    < Date: Wed, 03 Aug 2016 15:27:03 GMT
    * Server Apache-Coyote/1.1 is not blacklisted
    < Server: Apache-Coyote/1.1
    < Location: http://ProxiedHost/confluence/
    < Content-Length: 0
  • If you get a status of 302 Found, it means that Confluence is resolving requests on the specified URL.
  • On the other hand, if you get a 404 Not Found response, Confluence is likely not responding using the specified URL and port.

    * Connected to localhost (::1) port 80 (#0)
    > GET /confluence HTTP/1.1
    > User-Agent: curl/7.37.1
    > Host: localhost
    > Accept: */*
    >
    < HTTP/1.1 404 Not Found
    < Date: Wed, 03 Aug 2016 15:36:53 GMT
    * Server Apache/2.4.9 (Unix) PHP/5.5.14 OpenSSL/0.9.8zc is not blacklisted
    < Server: Apache/2.4.9 (Unix) PHP/5.5.14 OpenSSL/0.9.8zc
    < Content-Length: 209
    < Content-Type: text/html; charset=iso-8859-1
  • If you want to check what is returned when following the redirection run:

    curl -vL localhost:8090/confluence
  • You will receive an output similar to the one below, which will show you the html code of the Confluence login page (or SSO login if configured):

    * Connected to localhost (127.0.0.1) port 8090 (#0)
    > GET /c7137 HTTP/1.1
    > Host: localhost:8090
    > User-Agent: curl/7.74.0
    > Accept: */*
    > 
    * Mark bundle as not supporting multiuse
    < HTTP/1.1 302 
    < Location: /confluence/
    < Transfer-Encoding: chunked
    < Date: Thu, 23 Feb 2023 11:07:37 GMT
    < 
    * Ignoring the response-body
    { [5 bytes data]
      0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
    * Connection #0 to host localhost left intact
    * Issue another request to this URL: 'http://localhost:8090/confluence/'
    * Found bundle for host localhost: 0xaaaacd893ef0 [serially]
    * Can not multiplex, even if we wanted to!
    * Re-using existing connection! (#0) with host localhost
    * Connected to localhost (127.0.0.1) port 27137 (#0)
    > GET /confluence/ HTTP/1.1
    > Host: localhost:8090
    > User-Agent: curl/7.74.0
    > Accept: */*
    > 
    * Mark bundle as not supporting multiuse
    < HTTP/1.1 200 
    < Cache-Control: no-store
    < Expires: Thu, 01 Jan 1970 00:00:00 GMT
    < X-Confluence-Request-Time: 1677150457485
    < Set-Cookie: JSESSIONID=FB5CF728ED905E1638872DCF41286467; Path=/confluence; HttpOnly
    < X-XSS-Protection: 1; mode=block
    < X-Content-Type-Options: nosniff
    < X-Frame-Options: SAMEORIGIN
    < Content-Security-Policy: frame-ancestors 'self'
    < X-Accel-Buffering: no
    < Content-Type: text/html;charset=UTF-8
    < Transfer-Encoding: chunked
    < Date: Thu, 23 Feb 2023 11:07:37 GMT
    < 
    { [7717 bytes data]
        
    
    <!DOCTYPE html>
    <html>
    [...]
    </html>
        
    * Connection #0 to host localhost left intact

Last modified on Dec 30, 2024

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.