Setting Up Apache HTTP Server

You can set up Apache HTTP Server as a front end to Artifactory using either the HTTP or AJP protocol.

Client ----------> HTTPD ----------> Artifactory
          HTTP            HTTP/AJP

Using AJP

The AJP protocol offers optimized low-level binary communication between the servlet container and Apache with additional support for smart-routing and load balancing.

The configuration is flexible and can be used either with mod_proxy_ajp, or with mod_jk.

The example below shows how to configure Apache using mod_proxy_ajp which is distributed by default, however you need to install and then enable as follows:

sudo a2enmod proxy_ajp

Configuring Apache With mod_proxy_ajp Installed

The sample virtual host below refers to Apache as a reverse proxy to Tomcat, where Tomcat runs with the AJP connector on port 8019:

<VirtualHost *:80>
    ServerAdmin your@email.address.com
    DocumentRoot "/srv/www/httpd/htdocs"
    ServerName artifactory.yourdomain.com
    ErrorLog "logs/artifactory-error_log"
    ProxyPreserveHost on
    ProxyPass /artifactory ajp://<yourdomain>:8019/artifactory
</VirtualHost> 

When changing the Artifactory context path in Apache make sure to reset your browser's host and session cookies.

Having a stale context path value cached by cookies can lead to inconsistent issue with the user interface such as Not authorized to instantiate class errors when switching between tabs.

Configuring Your Tomcat

If you are using a dedicated Tomcat rather than the one that is bundled with the Artifactory download zip file, you must configure the AJP connector located, by default, under $CATALINA_HOME/conf/server.xml:

<Connector port="8019"  protocol="AJP/1.3"
 maxThreads="500" minSpareThreads="20"
 enableLookups="false"
 backlog="100"/>

Please refer to for more configuration options.

Configuring Apache With a Custom Artifactory Path

You can configure Apache using the same setup as above but here the goal is to have http://artifactory.yourdomain.com/repository/ as the root URL for Artifactory as follows:

 <VirtualHost *:80>
    ServerAdmin your@email.address.com
    DocumentRoot "/srv/www/httpd/htdocs"
    ServerName artifactory.yourdomain.com
    ErrorLog "logs/artifactory-error_log"
    ProxyPreserveHost on
    ProxyPass /repository ajp://<yourdomain>:8019/artifactory
    ProxyPassReverse /repository http://artifactory.yourdomain.com/artifactory
    ProxyPassReverseCookiePath /artifactory /repository
</VirtualHost>

Using an HTTP Proxy

When running Artifactory with Tomcat, we recommend that you set up Apache to proxy Artifactory via HTTP.

You must configure redirects correctly using the PassReverse directive, and also set the base URL in Artifactory itself so that the UI links show up correctly.

Configuring Apache With mod_proxy_ajp Installed

The sample virtual host assumes that the Tomcat HTTP connector runs on port 8081.

For HTTP redirects to work, you must set a PassReverse directive on Apache, otherwise the underlying container base URL is passed in redirects

In the example below it is set to http://artifactory.yourdomain.com/artifactory/

<VirtualHost *:80>
    ServerAdmin your@email.address.com
    DocumentRoot "/srv/www/httpd/htdocs"
    ServerName artifactory.yourdomain.com
    ErrorLog "logs/artifactory-error_log"
    ProxyPreserveHost on
    ProxyPass /artifactory http://<yourdomain>:8081/artifactory
    ProxyPassReverse /artifactory http://artifactory.yourdomain.com/artifactory
</VirtualHost>

Setting Up Apache HTTPS 

You can set up Apache with SSL (HTTPS) as a front end to Artifactory using either the HTTP or AJP protocol.

Client ----------> HTTPD ----------> Artifactory
          HTTPS           HTTP/AJP

Using AJP

If you are not running Artifactory with Tomcat, then it is recommended to use AJP since it provides the servlet container with all the information about the correct base URL and requires no configuration in Artifactory.

Using an HTTP Proxy

Configuring Apache With mod_proxy_ajp Installed and Tomcat

The Apache and Tomcat sample configuration is as described in the section on Apache HTTP Server above under Using AJP.

Configuring a Custom URL Base in Artifactory

When using an HTTP proxy, the links produced by Artifactory, as well as certain redirects contain the wrong port and use the http instead of https.  

Therefore, you must configure a custom base URL as follows:

  1. On the Admin tab select Configuration | General Custom URL Base field.
  2. Set the Custom URL Base field to the value used to contact Artifactory on Apache
    For example: https://artifactory.yourdomain.com/artifactory

Please refer to General Configuration for more details about configuring the base URL.