= Apache = Running a redundant apache server does not require much from apache itself, but rather the underlying filesystem and a proxy in front of it. The filesystem is important, so the website can be shared between the servers. For this we will use [[GlusterFS|GlusterFS]]. PHP sessions will have to be shared between the webservers too. [[Redis|Redis]] will be used for that and finally we will put a proxy in front of apache, which will be a combination of [[Corosync and HA-proxy|Corosync and HA-proxy]]. In this setup we will configure 2 apache servers. None of these will be master/slave/primary/secondary. They will just be running with the same configuration. * 192.168.1.47 www (virtual IP-address) * 192.168.1.48 www01 * 192.168.1.49 www02 == Software == {{{ apt-get install apache2 php php-mysql php-redis }}} == Filesystem == Configure your system as a [[GlusterFS Client|GlusterFS client]], so you have the following in your fstab. {{{ /etc/glusterfs/www.vol /var/www glusterfs defaults,_netdev,rw 0 0 }}} == PHP Sessions == Creating a PHP session on one webserver, does not create it on the other. As requests bounces back and forth between the two webservers, this will be a problem for PHP sites. A solution to this is using [[Redis|Redis]] as a storage for the PHP sessions. In `/etc/php/7.0/apache2/php.ini` and `/etc/php/7.0/cli/php.ini` find the entry `session.save_handler = files` and change it to the following. {{{ session.save_handler = redis session.save_path = "tcp://redis:6379" }}} Copy the configuration to all webservers and finally restart the services. {{{ service apache2 restart }}} == Testpage == Make a simple webpage, that shows something unique about the system and also creates a PHP-session. Use this to test the setup. `index.php` {{{#!highlight php }}} == References == * https://www.digitalocean.com/community/tutorials/how-to-set-up-a-redis-server-as-a-session-handler-for-php-on-ubuntu-14-04