my mision is to implement very small hosting infrastructure environment but the number of user is quite a big, about 500-1000 users. Each of them will have website, mail, ftp, dns. I only have 3 workstation (32 bit) and plan the scheme like this:
I think the squid will act as Reverse Proxy for both server (I have only 1 static IP) and Cache server for HTTP content.
I understand that this environment in usual way can not handle the load and easily can crash on peek times.
My question is how can I optimize this scheme. I mean what software packages can help me? So:
1. Squid will help with reduce Apache load. Correct? But is it affect SEO? I read that module_rewrite not works.
2. What to do with Mail, FTP, DNS, especialy with MySQL? I think the only technic possibly is caching or load balancing. But what packages I need install and can they help increasingly remove load in this situation.
Why would IP addresses matter if he wants a cluster with a loadbalancer. The loadbalancer will choose which internal server to use. However making such system would be somewhat tricky, especially on the database part. I would even advise you against doing such setup without deeper understanding of fow everything works there.
For a novice the best would be service separation between the boxes - for example, one box for http/php/ftp, second for sql and third for everything else. I think some control panels even allow setups like this to be made automatically, but I am not sure about that...
The reverse proxy would work for HTTP requests (load balancing), but for mail (smtp and such) you would need 2 public IP's for the 2 different servers, unless you are hosting the domains on both servers and have data replication (files, database, email, zone files) set up between the 2 systems so it wouldn't matter which server got the connection upon each smtp, pop3, dns connection since they are identical systems.. If that is the OP's intention, yea it's possible to set up a system like that, just will need custom configuration on just about every service..
Squid isn't going to help much except in certain special situations, and in most cases is more trouble than it's worth. Nginx can be helpful as a reverse proxy to apache to reduce apache slot usage and therefore reduce memory usage, but the caching features are usually not helpful in a typical website configuration.