NGINX.COM
Web Server Load Balancing with NGINX Plus

For more than 15 years, NGINX technology has helped websites to scale and cope with surges in traffic. At F5 and NGINX, we want to help you if you’re operating a website or mobile application and expect to see an impact from COVID‑19. To help, we are:

  • Providing a curated list of free software, documentation, and other assets to help you learn how NGINX can help you do good.
  • Encouraging our employees to spend work time responding to requests for help with affected websites wishing to use NGINX, on Stack Overflow1 and the @nginx channel on Twitter using #nginxhelp.

You Are Not Alone

As the Coronavirus continues to sweep the globe, we’re seeing companies ask employees to work from home, schools close or consider remote learning models, and community organizations try to meet growing member needs while following WHO guidance. Unfortunately, best intentions haven’t been enough; some of these organizations are struggling to scale their websites and other resources that enable people to stay connected and informed.

We love that many of you around the world are eager to help your communities and organizations on the frontline handle the unprecedented technology challenges created by this health crisis, despite how overwhelmed you might be feeling yourself. And we at NGINX want to help.

How? Putting NGINX software in front of a website’s existing infrastructure immediately improves its performance and ability to scale to meet demand. If that sounds too good to be true, consider that more than 40% of the world’s busiest websites already use NGINX to deliver hyperscale applications.

Even someone relatively new to NGINX can deploy it within 30 minutes. Many NGINX experts can do it even faster. So let’s work together to do good and make it happen. Everyone can contribute:

  • Educators, agency employees, and nonprofit workers who aren’t technical, plus consumers of their services – Share this blog with your organization, directly to the webmaster or IT system administrator if possible.
  • Webmasters and IT administrators – Read this blog to learn about the free resources we’re offering to help you quickly install and use NGINX at this critical time.
  • NGINX OSS community members – Share your NGINX expertise with those in need! Follow the nginx tag on Stack Overflow1 to help answer questions as they come in.

This blog is designed to help all three of these groups, but the resources we recommend assume some familiarity with NGINX. If you’re new to NGINX all together, see How NGINX and F5 DNS Cloud Services Help.

Free Resources for Ramping Up Fast

We understand that time is of the essence. So we’ve curated a set of resources to help you get going quickly.

Software

Documentation and How-Tos

Training

Support

  • For questions about NGINX, the NGINX channel on Stack Overflow1. NGINX employees are monitoring this channel and will respond to questions and requests as quickly as possible. We ask community members to join us in monitoring the channel to see if they can help, particularly with organizations in their local area.

    When asking a question, follow these best practices:

    • So that we and NGINX community members see your question is related to this initiative, include #nginxhelp in the Title field and nginx in the Tags field.
    • Specify your operating system and the NGINX version you’re using (run the nginx -V command to get this), and whether you downloaded NGINX from our repo or somewhere else. If you didn’t download it from the NGINX repo, please specify all download details such as URL.
    • Include your NGINX configuration file (disguise hostnames and IP addresses as necessary).
    • If NGINX is generating errors, include the relevant sections of the access and error logs (/var/log/nginx/access.log and /var/log/nginx/error.log).
    • Provide full details about your NGINX use case and the functionality you’re trying to implement.
    • To amplify your Stack Overflow1 question for a quicker response, consider posting a link to it on the @nginx channel on Twitter using #nginxhelp.
  • For questions about DNS Load Balancer Cloud Service and DNS Cloud Service, the F5 Cloud Services community on DevCentral. The F5 Cloud Services team is actively monitoring the community to provide prompt responses.

External Resources

Over NGINX’s 15‑year history, many community members have created online resources that you may find helpful. We suggest you do searches for articles, videos, and free online training. You can also find information about DNS load balancing and DNS services to supplement your knowledge.

How NGINX and F5 DNS Cloud Services Help

NGINX is the popular and high‑performance web server used at millions of websites worldwide. Initially released as open source software in 2004, NGINX is a lightweight, stable solution to ensure uninterrupted traffic and uptime at your site. All of the NGINX Open Source code is publicly visible and free to use. Contributions can be made by anyone in the broader community, as well as by NGINX developers.

Maybe you’re a school faced with deploying distance learning capabilities. Perhaps you’re an IT Admin for a large regional hospital struggling to keep patient test results available on your secured website. For these cases and countless more, NGINX can help your website quickly and responsively handle increased load.

Used by most of the world’s busiest websites because it’s scalable and high‑performance, NGINX can act as a reverse proxy, web server, and load balancer. It helps ensure that traffic coming to your website gets through to the server more quickly, your end users receive responses (that is, requested web pages) faster, and large numbers of traffic requests coming in at the same time are handled without problems.

Here’s an example of a basic web server setup:

When people use their browser to access a web page, whether from a mobile device, tablet, laptop, or desktop, the request goes via the Internet to the relevant web server. If many people request pages within a short time, the web server can get overloaded. At best, an overloaded server can take a long time to deliver a page; at worst, it is unable to respond at all. The server is doing many activities, including retrieving web page content and handling the large number of connection requests from clients. You can see how it could get overloaded!

No matter which web server you’re using, adding NGINX in front of it as a reverse proxy can improve its performance and scale. NGINX uses a very efficient method to handle incoming requests, meaning that it can handle very large traffic volumes without getting overloaded, and pass requests on to the web server in a way it can handle. This in turn prevents the web server from getting overloaded and slowing down, or even failing. By adding NGINX you’re dividing the labor: NGINX handles incoming requests, while the web server accesses and serves web pages. NGINX can further reduce the load on the web server by storing common responses (also known as caching) so that the web server doesn’t need to handle them fresh every time.

Keep in mind that your organization might be using a third‑party service like WordPress or Google Docs to host its website, rather than running its own web server. If you’re not sure, check with your IT administrator. In this case, the third‑party service is running the reverse proxy and web server, and is responsible for handling user requests to your website. If the website isn’t performing well, you might talk to the third party and suggest NGINX. We’re happy to help them improve the performance and scale of the websites they host, for free with NGINX Open Source – just like we can help for sites you’re hosting yourself.

The Domain Name System (DNS) is how web clients and servers translate a URL into an IP address and vice versa. For example, imagine your users want to connect to www.healthcaregroup.org. The user enters the URL for the Healthcare Group in a web browser, and the browser contacts a DNS server to get the actual IP address for www.healthcaregroup.org. DNS is basically a way to look up a web server address, just like we used to use the Yellow Pages to look up an organization’s physical address. Load balancers (and web servers) use a DNS server to help their clients connect to them. The DNS server specifies the address of each part of the website. A DNS server can get overloaded if there are a lot of requests for the addresses it maintains. You can add DNS Cloud Service as a secondary DNS so that client requests still get directed to the correct address when your DNS server is under load  – or even if it goes down.

When building a web site composed of multiple applications, each application has its own requirements. For example, the Healthcare Group’s results application, accessible at www.healthcare.org/results, may need to perform more quickly and deal with large amounts of patient data which is updated all the time. In contrast, the Healthcare Group home page, www.healthcare.org, might contain simple text and pictures and not change very often. To manage these different requirements, IT operations and developers often decouple the apps within a site, and then ensure that each individual app has the resources it needs to perform and scale.

In this example, responses from the home‑page app can be cached, since the content doesn’t change very often; adding in NGINX provides caching. To ensure that the results app is always available, the Healthcare Group’s operations team might add failover by having two servers host the app. That way if a request goes to server1 which is down, it can go to server2 and the client still gets a response. By adding DNS Load Balancer Cloud Service, the Healthcare Group can ensure that requests to the critical results app always find a web server that is up, even routing requests to the geographically closest server.

Configuration How-Tos for Common Use Cases

Some of our users have asked for more detailed information about applying NGINX and F5 technology to specific use cases, and our NGINX and F5 technical experts have answered the call with these how‑to blogs. Have a use case you’d like help with, or want to help fellow NGINX community members with your own tips? Let us know in the comments section at the end of the blog!

For More Advanced Needs

Some of you in the education, public government, or nonprofit sectors may find that you need more capabilities and support than are available with NGINX Open Source. For example, you may have multiple servers hosted in different regions or need advanced load‑balancing algorithms and authentication.

[Editor – The free NGINX Plus licenses we offered when this blog was originally published are no longer available. If you are a nonprofit organization and believe that the enterprise‑grade capabilities in NGINX Plus can help you better serve your community, please reach out to us on the @nginx channel on Twitter using #nginxhelp.]

F5 DNS Load Balancer Cloud Service2 provides a free tier of intelligent load balancing for traffic across all your NGINX deployments by directing users to the most appropriate destination based on their location and the availability of each NGINX server.

For guidance on NGINX Plus, we suggest looking at the more advanced capabilities discussed in Chapters 6–9 and 11–16 of the NGINX Cookbook: Advanced Recipes for Performance Load Balancing.

For guidance on F5 Cloud Services, see the online documentation referenced in Documentation and How‑Tos.

We’re in This Together

NGINX is incredibly fortunate to have a passionate, global user community. We never cease to be amazed by its ingenuity, generosity, and spirit. We’re hoping we can all channel this goodness and help ensure as much continuity as possible during the COVID‑19 pandemic.

That’s why we’d like to ask each of you, NGINX Novice and NGINX Expert alike, to help with this effort.

Stay informed of relevant updates by checking back on this blog post and following us on Twitter using #nginxhelp.

No doubt, these are challenging times. And we sincerely believe that together, we can do good.

Thank you in advance, from our community to yours.

Sincerely,

The Employees of NGINX/F5



1Stack Overflow is a third‑party website and is not affiliated with F5. Inc. F5 and its affiliates disclaim any liability for content (including general information and proposed solutions to questions) posted on Stack Overflow or any other third‑party website.
2F5 Cloud Services licenses are subject to F5 Cloud Services legal terms and policies.

Updated March 20 to amend list of best practices: put #nginxhelp in title of questions on Stack Overflow.
Updated March 27 with information about F5 DNS Cloud Services.

Hero image
Free O'Reilly eBook: The Complete NGINX Cookbook

Updated for 2024 – Your guide to everything NGINX



About The Author

Horizontal NGINX Logo

About F5 NGINX

F5, Inc. is the company behind NGINX, the popular open source project. We offer a suite of technologies for developing and delivering modern applications. Together with F5, our combined solution bridges the gap between NetOps and DevOps, with multi-cloud application services that span from code to customer.

Learn more at nginx.com or join the conversation by following @nginx on Twitter.