How to bind Confluence to a particular network interface
Platform Notice: Data Center Only - This article only applies to Atlassian products on the Data Center platform.
Note that this KB was created for the Data Center version of the product. Data Center KBs 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
By default, Tomcat will bind *:port when reading in a connector; that is, it will listen on every IP/Interface. In situations where a server has more than one network interface card, you can bind to a specific one by adding the address element to the connector configuration.
Solution
Change the server.xml
file by adding an address element:
1
2
3
4
5
6
7
<Connector port="8080" connectionTimeout="20000" redirectPort="8443"
address="192.168.1.1"
maxThreads="48" minSpareThreads="10"
enableLookups="false" acceptCount="10" debug="0" URIEncoding="UTF-8"
protocol="org.apache.coyote.http11.Http11NioProtocol"/>
...
<Host name="localhost" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="false" startStopThreads="4">
Also, change the hostname from localhost to the relevant host name. In the file above, they are on the same IP.
Do note, that since usually there is only one Host container, the name set there should also match the value of
defaultHost set in the Engine container. If there is more than one Host containers, exactly one Host's name should match the Engine's defaultHost. Please refer to the
official Tomcat Host documentation reference
for details.
Was this helpful?