Configure high availability
To help you minimize downtime experienced by your users, EZproxy can be configured to run on multiple systems in a High Availability configuration.
High availability configuration requirements
An EZproxy High Availability configuration requires the following components:
- Two or more EZproxy servers that have separate DNS hostnames and IP addresses (e.g. ezp1.yourlib.org at 68.14.229.197 and ezp2.yourlib.org at 68.14.229.198). These are called the peer hostnames.
- A single DNS hostname that is different from the peer hostnames and is setup using multiple DNS Address (A) records so that it resolves to all of the IP addresses of all of the peer servers (e.g. shared.yourlib.org at 68.14.229.197 and 68.14.229.198). This is called the shared hostname.
- The peer hostnames and the shared hostname must all be different up to the first period, then must all be identical from the first period to the end (e.g. ezp1.yourlib.org, ezp2.yourlib.org, and shared.yourlib.org start with the differing ezp1, ezp2, and shared, but all end identically in .yourlib.org).
- All EZproxy servers must be configured to accept their initial connections on the same port.
Configure HAName and HAPeer
The config.txt file for all servers requires a single HAName statement containing just the shared name and an HAPeer statement containing the main http URL for each of the peer servers.
HAName shared.yourlib.org
HAPeer http://ezp1.yourlib.org
HAPeer http://ezp2.yourlib.org
The file for each server should be identical except for their Name statement and Interface statements (if any).
Tips for configuring the HAPeer directive
- The URL for each HAPeer directive must exactly match the http URL that appears in that server's messages.txt file at startup. For example:
Server http URL http://ezp1.yourlib.org
- The URL for the HAPeer directive cannot be specified using https.
- If a port appears as part of the URL in messages.txt, it must be included in the HAPeer directive as well.
See the IncludeFile directive for information on how to allow the config.txt files to be identical on all peer servers while including their site-specific information from a separate file.
Starting point URLs
Once everything is configured, set up your Starting point URLs to use the shared hostname. Based on the prior example, a starting point URL might look like:
http://shared.yourlib.org:2048/login?url=http://www.somedb.com/
SSL
If you are using SSL on these servers, each server must have its own separate SSL certificate. SSL certificates are purchased under the specific server names (e.g. ezp1.yourlib.org and exp2.yourlib.org), not under the shared name.