Introduction
If you have a large number of users, or your users are spread across a number of different sites, you may want to consider running more than one MPNews server to run your newsgroups on.

By using more than one server, you can normally provide a better service to your users. With less users connected to each server you will normally get faster response times, if you have a load sharing system your newsgroups can continue to run even if one of your servers fails, and having servers closer to the users can result in less network bandwidth being used.

Sending messages between the servers
To run your newsgroups across multiple servers, you need to configure your servers to send messages to each other. In this way, as soon as a user posts a message on server A, it will be immediately relayed to servers B and C, which can pass it on again to even more servers.

To set this up, you need to configure a "push feed" on each of your servers to send messages to your other servers. If you have two servers you will set up a push feed on each to send messages to the other. If you have three or more, you can either set up a feed on each server to send messages to each of the other servers directly, or you can set up a more limited number of feeds so that messages will be sent from one server to another until they will eventually have been sent to them all.

For push feeds to work correctly, you must first have given each of your servers a unique name. You will normally set your server names to be the same as the fully qualified DNS names, e.g. news1.mycompany.com, news2.mycompany.com, etc. To set your server names, open the "General settings" screen in the MPNews Management application and set the "Computer path name" option.

To set up your news feeds, select the "News feeds" option in the main MPNews adminstration site and click on "Add New Feed". Give each feed a name and enter the address of the server the feed should send messages to, and click on "Save" to create the feed. Back on the main list of news feeds, click "Edit push feed" next to the feed you have just created.

On this screen, you need to select which newsgroups the feed should send messages for. If you want to send messages from all of the newsgroups, enter * for this option.

You also need to ensure that the feed does not send messages back to the remote server if they have already been sent there. This does not cause any major problems, but does waste network bandwidth. To prevent this, enter the name given to the remote server in the "Look Prevention" section.

Your push feed is now set up. Repeat this process for any additional feeds you require on this server, and then repeat the entire process on your other servers.

Accepting the feeds
By default, MPNews is configured to reject any messages sent to it via a push feed. You will need to edit these settings to allow the feeds from your other servers to work.

Create a role called "Feeders" in the main MPNews administration site. Add a new user for each server you want to accept a feed from. Normally, these servers will have fixed IP addresses, so enter the IP address and netmask to identify the server and leave the username and password options blank. Add each of these users to the "Feeders" role. Finally, create a new permissions entry which gives the group "Feeders" access to all the newsgroups you want to let them send the server messages for.

Message numbering
By this point, each of your servers should be sending any new messages it receives on to each of your other servers, and they should be accepting the messages and making them available for the users accessing that server.

Provided your users only access one particular server, or only use the web interface to your newsgroups, this setup is fine. However, if you have a load balancing system set up so that a user could be connected to a different server each time they connect, and they are using a newsreader to access your newsgroups, you may experience a few problems.

If a user retrieves a list of messages from one server, but is connected to a different server when they actually try to read the message, they may find the server sends them the wrong message. This is because each server uses its own numbering system for messages, and with the feeds you have set up at the moment, these numbers will not be synchronized across your servers.

To ensure that each of your servers uses the same number to identify each message, you need to either set up an additional server or designate one of your existing servers as the "master" server. It is this servers responsibility to assign numbers to each new message. A message posted to one of the other servers must first be forwarded on to this server for numbering, then fed back to each of the other servers. These servers will then use the number assigned by the master server to index the message.

The first step in creating this setup is to ensure that none of the servers other than the master server saves a newly posted message, but instead forwards it on directly to the master server. To do this, you will need to edit the push feed on each of your servers that sends messages to the master server and enable the "Forward messages to the remote server without storing them locally" option.

Next, you need to ensure that your servers will use the numbers assigned to each message by the master server. To do this, go to the main "News feeds" page and enter the name of the master server in the "Xref master" option and click on "Save".

When a message is now posted to one of your servers, it will be sent directly to the master server and will not be saved on the server it was posted to. The master server will save it, then send it out to the other servers through its feeds. These servers will identify the message as having come from the master server due to the "Xref master" option, and save the message with the same numbers as used on the master server.

Your users can now move seamlessly between your servers without noticing any difference from using one server.