With the increased demand for remote and online learning, Moodle — the premier open-source learning platform designed to provide educators, administrators, and learners with a single system to create personalized learning environments — is asked to do more and more. These demands for Moodle to do more can dramatically slow performance and bring learning to a crawl.
Moodle users were among the first to recognize the slowdown. “In dealing with the rapid growth of digitalization, the eLearning system has become a mandatory component of any higher education to serve academic processes requests. Along with the increasing number of users, the need for service availability and capabilities of eLearning are increasing day by day,” as explained in a 2019 report. “The organization should always look for strategies to keep eLearning always available to meet these demands,” it continued.
A Solution:Load Balancing Moodle eLearning Environments
Load balancing offers the flexibility to meet changing user demands. As demands change, servers can be added or removed with no impact to client-facing services. In this instance, that means a server can be modified without an impact to educators, students, or administrators.
I explain the benefits of using a load balancer with Moodle cluster environments in my recent webinar, “How to Load Balance a Moodle Cluster: Ensure high availability and app security.” In this webinar, I also show the step-by-step configuration of the load balancer to a Moodle server cluster and outline a handful of advantages to why you should pair a load balancer with Moodle. You may watch the video explaining the configuration process and optimization tips below.
Why Use a Load Balancer
Beyond meeting changing user demands, there are four prime benefits to load balancing:
- Scalability — Scale as application and user demands grow.
- Resilience — If a server should fail, users get redirected to available servers.
- Manageability — Servers can easily and transparently be brought in and out of service.
- Security — Easily manage security certificates and protocols in one place.
Maintaining Availability and Optimizing Performance
Moodle is designed to scale and can accommodate extremely large user communities, but it does not guarantee it will serve larger communities well. When you scale Moodle, you can reduce availability and performance at the same time.
Load balancing with the Progress Kemp LoadMaster ensures high availability, while at the same time accelerating traffic. LoadMaster simplifies scaling Moodle by load balancing user traffic across cluster nodes and offloading the security overhead.
LoadMaster load balancers can monitor each Moodle server individually to assess capacity and health, and should a server become unavailable, LoadMaster will redirect sessions to the remaining cluster members. Client traffic can be balanced using methods such as round-robin or least connections to ensure traffic is appropriately distributed between the nodes in the Moodle cluster.
LoadMaster ensures a better application experience for educators, students, and administrators. One example of this is LoadMaster’s ability to offer different scheduling methods to balance traffic across servers. This can vary from a simple round-robin where connections are shared evenly among servers, to more advanced methods that take existing server load into account. Admins can also apply a weighting to servers to accommodate environments with servers of varying capacities.
It is good practice to keep a user’s session on the same server, and the LoadMaster load balancer uses a range of client attributes to uniquely identify each session and persist that session on the same server. LoadMaster can also enhance performance and simplify administration by offloading the SSL processing, security protocol enforcement and certificate management.
Moodle Clusters and How They Work
Looking at the architecture of a typical Moodle cluster, there are usually several Moodle servers connected to a replicated storage and database infrastructure. LoadMaster load balancer balances traffic across these Moodle servers to make that experience seamless for its users.
Our example setup is basic. Two Moodle servers and a single load balancer in a 192.168.0 subnet, as shown in the diagram below.
IT can configure the load balancer with multiple interfaces, in different subnets to provide additional separation and to support public and private access to Moodle services.
How to Secure Moodle
LoadMaster brings security benefits including single sign-on (SSO), web application firewall (WAF), and a single enforcement point for encryption policies. All not only improves the end-user experience, but also enhances performance, security, and availability.
Using the LoadMaster to provide pre-authentication services is a commonly used feature. Using pre-authentication, users must first authenticate with the load balancer before they are granted access to Moodle services. This reduces the opportunity for hackers to attack the Moodle cluster.
Once authenticated to the LoadMaster load balancer, users are automatically signed into Moodle, and the single sign-on can be used with other applications within the infrastructure. LoadMaster has wide support for all leading authentication schemes and supports enhanced authentication options including smart cards and password tokens.
Moodle has native support for Office 365 authentication and offers plugins to integrate Office 365 services such as calendaring and OneDrive, giving users a completely seamless sign-on and access experience.
Websites and applications are commonly compromised through vulnerabilities that are documented by the “Open Web Application Security Project,” known by its acronym, OWASP. LoadMaster’s web application firewall (WAF) protects the Moodle site from attacks attempting to exploit these vulnerabilities.
WAF inspects all traffic, like that of a virus scanner. It identifies malicious payloads and blocks such activity, providing an additional layer of protection. WAF also gets regular updates of IP addresses that have been identified as dangerous and can block access from these addresses.
Optimizing Moodle for Better Traffic Delivery
LoadMaster has several ways to optimize traffic delivery and provide a better, more seamless user application experience. Included are the following optimizations for Moodle that can be done using the LoadMaster:
Content Switching — Directs traffic to specific users based on the content of requests.
Cache and Compression — Reduces the load on Moodle servers for commonly requested resources
High Availability — Pairing LoadMaster load balancers together to eliminate failover
Global Server Load Balancing (GSLB) — Used in geographically dispersed cases or to support multi-site failover for disaster recovery
Watch and learn how to enhance your Moodle application experience with our How to Load Balance a Moodle Cluster webinar. You may also trial a virtual LoadMaster load balancer for your eLearning environment Free for 30 days by clicking the link here.