ARTIFACTORY: Custom maintenance page for Artifactory Using Apache reverse proxy
Purpose
To set up a simple custom maintenance page for Artifactory during the Artifactory application maintenance work.
In this example Apache reverse proxy used to set up the custom page
Prerequisites
Apache Reverse Proxy
Artifactory instance
Steps to Install
Install HTTPD service, here we have used Centos server.
yum install httpd
Use reverse proxy configuration from Arttifactory > Administration > Artifactory> HTTP Settings
Place this reverse proxy configuration under Apache config directory
/etc/httpd/conf.d/artifactory.conf
Create a custom HTML page and place it under /var/www/html directory. Make sure the file ownership should be apache user.
Sample HTML page below. Please customize according to your requirements.
503.html
<!DOCTYPE html>
<html>
<head>
<title>Website Maintenance</title>
<style>
body {
font-family: Arial, sans-serif;
background-color: #f5f5f5;
}
h1 {
color: #555;
margin-top: 50px;
text-align: center;
}
p {
color: #777;
text-align: center;
}
</style>
</head>
<body>
<header>
<h1>Website Maintenance</h1>
<img src="logo.png" alt="Logo">
<p>Sorry, our website is currently undergoing maintenance. We'll be back soon.</p>
<p>Estimated time until completion: 1 hour</p>
</header>
</body>
</html>
Then we need to add this page inside the Artifactory reverse proxy configuration under the <VirtualHost *:80> directive like below. Proxy exception alias like http_errors must be placed before the actual proxy rule.
########################################################### ## this configuration was generated by JFrog Artifactory ## ########################################################### <VirtualHost *:80> ProxyPass /http_errors/ ! Alias /http_errors/ /var/www/html/ ErrorDocument 503 /http_errors/503.html ProxyPreserveHost On ProxyAddHeaders off ServerName *.*.*.* ServerAlias *.x.x.x.x ServerAdmin server@admin ……… …….
Restart the httpd service
systemctl restart httpd
Now if the Artifactory service is down, Artifactory URL automatically redirects to the maintenance page . Below is the sample screenshot from the maintenance page.