I'm looking to create a website for publishing exam results for over 60,000 students. The tricky part is that many students will try to access the site at the same time. I'm trying to figure out the best software stack and hosting setup to cope with this high level of traffic. Should I be using Apache, Nginx, or something else? Would it be better to stick with PHP/MySQL, or should I switch to a more scalable backend? I'm also interested in any tips regarding caching, CDNs, or load balancing. It's crucial that the solution can be deployed quickly and won't crash under pressure. Has anyone dealt with a similar situation on exam results day and can provide recommendations?
5 Answers
A CDN might be unnecessary unless your site has large images or videos. Consider if you have authentication needs too. If you already have a Microsoft 365 or Google Workspace setup, think about utilizing their page features for hosting. 60,000 requests isn't overly demanding if you're just serving static pages.
This is a prime scenario for a cloud-based solution. If designed properly, it can scale to accommodate peak loads and then operate on minimal resources most of the time.
There's not enough detail here to give a comprehensive solution, but it's probably a bad idea to develop something in-house for this type of requirement. It might be better to buy a ready-made solution that specifies hardware needs. And beware, hosting on-premise could lead to bottlenecks due to hardware limitations.
One approach is to stagger the release of results for different groups. Notify each group via email when their results are available and serve a basic static page to others who are still waiting. This can help reduce the immediate load on your server.
It really depends on how you plan to present the results. If users need to log in, I wouldn't recommend using PHP for speed. Both Apache and Nginx can efficiently serve a static HTML page. Check if your university offers any hosting services that could support this.
Related Questions
Cloudflare Origin SSL Certificate Setup Guide
How To Effectively Monetize A Site With Ads