It is possible to standard means to fix scale up an internet site that operates on PHP + Apache web server ? As with I recieve a traffic around 100,000 demands/day by now. 6 several weeks down the road I expect it to develop to 200,000 demands/day. The very first cut solution which involves my thoughts is implementing more Apache web servers with mod_php, but something appears so wrong about this.
Any ideas ?
i haven't any knowledge about scaling realy large websites, however i don't believe you will need so scale to various servers within this situation. i've got a browsergame with 40.000-60.000 demands daily, some cronjobs doing a lot of things every a few minutes along with a teamspeak-server on the small server (40 $ / month) and havn't got any performance problems till now.
Try both of these options first before adding new servers. They might permit you to stick to one server, however your results can vary.
For speeding the website up when you're hit with lots of concurrent customers, consider setting up the APC PECL extension (http://us2.php.internet/manual/en/book.apc.php). APC will help you to cache the put together version of the scripts, saving the step from the PHP interpreter running every time a script is performed.
Also, if you're going through heavy strain on the database server, consider setting up memcached and caching database recent results for a particular period of time, if at all possible (http://us2.php.internet/manual/en/book.memcache.php).
Finally, should you choose decide to obtain a separate server, consider possibly obtaining a devoted SQL box. This, obviously, assumes that the application is really a database heavy application, as web applications are nowadays. Segregating SQL right into a separate box enables it to consider advantage of all the assets on that box, with increased cache and processing energy. It may be what you want.
20.000 demands / day is just one every fifth second, seems like one box should have the ability to cope with that simply fine? Otherwise I'd first take a look at bottlenecks inside your code. Redundant database calls? Double-looping database calls instead of simple joins? Are you currently caching anything?
How you can scale following this is completely determined by the application, how/where would you keep session condition and so on, general advice has limited usefulness.
if you want after that it you ought to have put a cache onto it