Configuring shared hosting clusters

274 views 0

How to configure shared hosting clusters to suit your needs.

Overview

The Vanilla installation of Atomia contains our default settings across the whole platform. These setting apply to all installed components, such as Apache, PHP, Email, FTP and Database settings. The Vanilla installation is configured with only one option for PHP and end customer databases by default.

All of the components of Atomia can be configured and fine tuned to suit your needs. We cover the most common components in this article.

Important!

Note that any changes to any of the components must be provisioned through the Atomia Installer only.

Multiple clusters

Atomia is by default installed with only one shared hosting cluster. The cluster can be scaled not only vertically, but also horizontally, creating separation between different clusters. For example you could have one Apache cluster with caching mechanism in front and one Apache cluster without caching mechanism. Another differentiation could be in used hardware for two different clusters, for example one MySQL cluster utilizing SSD drives and one MySQL cluster on traditional spinning disk.

This way it is possible to create differentiation in the product offering towards your end customer and create clear upgrade paths.

Additional clusters can be created at any time in the lifecycle of Atomia. However, when starting ‘fresh’ it is recommended to do this before defining products and provisioning flows, as adding a cluster has to be (re)configured in the product and provisioning flow.

Apache

It is possible to change any aspect of Apache. Atomia has its own Apache agent for provisioning shared hosting accounts. However, we utilize the standard Apache server. Therefore, any changes to Apache can be provisioned through the Atomia Installer.

Keep in mind

Do not change the configuration of the webspace or the default error messages as this breaks the Atomia functionality.

PHP

The following versions of PHP are installed by default:

  • 5.4.45
  • 5.5.29
  • 5.6.10

With the following PHP packages:

  • Php5-gd
  • Php5-imagick
  • Php5-sybase
  • Php5-mysql
  • Php5-odbc
  • Php5-curl
  • Php5-pgsql

And with the following modules enabled:

  • rewrite
  • userdir
  • fcgid
  • suexec
  • expires
  • headers
  • deflate
  • Include

You may change any  of the above mentioned properties at any given moment. You can also decide to have some of the changes only in a specific cluster as well. Again, all changes must be provisioned through the Atomia Installer.

One of the common settings/changes is defining a default email gateway for the whole Apache (PHP) clusters. If your end customers send emails through PHP code all outbound email will then be passed through a single mail gateway (which most commonly also functions as anti spam/virus filter).

MySQL

The latest stable release of MySQL is deployed with default MySQL configuration and settings through Git by default. Any changes may be done through the Atomia Installer.

One of the common configuration adjustments is to have MySQL listening only to the internal IP range, so that MySQL is accessible by Apache cluster — but not from internet (PhpMyAdmin can be used as GUI to access MySQL).

Additional end customer databases

In addition to MySQL Atomia supports MS SQL and PostgreSQL as database backends for your end customers. If you would like to offer one or both of these they must be installed through the Atomia Installer. The default settings and configurations are applied and any changes can be done through the Atomia Installer.

Email

Atomia installs Postfix and Dovecot as email servers. Standard configuration and settings are applied using MySQL as backend. Basic anti spam/anti virus setup is provisioned as well.

FTP

Standard PureFTPd server is installed with default settings.

Load balancer

Atomia uses HAProxy for load balancers. Default configuration is applied. Due to the nature of the load balancers, many different settings and configurations are possible for the behaviour of the load balancers. Any changes made to HAProxy must be provisioned through the Atomia Installer.

Accelerator

Optionally you can place (PHP / Apache) accelerator/caching server between the Load balancer and the Apache cluster. This way a large amount of data can be cached and served directly from this server, without even reaching the Apache cluster.

Soft and hard limits for shared hosting

By default Atomia does not impose hard limits for the shared hosting accounts. This means that although you will have to define product properties (such as used space), we do not enforce this policy on a file system level. Inevitably this means that your end customer may overuse resources, but on the other side Atomia never causes end customer service disruptions (ie. when there is no more disk space left and emails starts bouncing, or the website stops functioning as intended).

There are many ways to change this behaviour. For example, GlusterFS as default backend storage solution allows for hard limits. Another solution would be a custom made script that automatically suspends the user’s shared hosting account if the limit has been reached — or simply a customer script for monitoring excess usage, that will trigger a manual action by your support department.

Was this helpful?