InMotion Hosting Support Center
This is archived and no longer maintained. Any information contained in this article may be out of date.

What is Nginx?

Nginx (pronounced "Engine-X") is an open source, high-performance Hypertext Transfer Protocol (HTTP) server. In technical terms, it is an event-driven asynchronous server. This means the method by which Nginx handles processes (required for loading web content, for example) is driven by conditions and delegated to alternative server resources to bear the load accordingly. Nginx is typically used to exploit higher performance from minimal resources, for example, on a VPS platform.

Nginx is versatile, in that it can be installed to replace Apache as the HTTP server. Because of its flexibility and lightweight design, it can also be installed along side Apache. In this manner, Nginx would be referred to as a reverse proxy.

How does Nginx compare to Apache?

On our servers, Apache is the default HTTP server that is configured for handling PHP processes to serve web content. In its default configuration, Apache is designed as a process-based architecture. This means that Apache forks (or threads) each process that is needed to serve web content.

Nginx alternatively scales these processes to help decrease the amount of CPU, RAM, and other server resources utilized, thus improving the load time. For instance, if one connection requests the same content as another, rather than processing those requests individually, Nginx analyzes and delegates accordingly. Both connections receive the same results of content loaded.

Although Apache and Nginx performance can both be similar in comparing load handling for small sites, Nginx's architecture, by design, is more efficient for heavier sites. However, the benefits of Nginx can be experienced with simple web applications, like WordPress. A common configuration that is implemented to improve the handling of a high load, is to setup Nginx as a reverse proxy.

What is a Reverse Proxy?

A Reverse Proxy is a type of configuration in which a proxy server off loads a request to another web server (or multiple servers) to execute processes. When the results of the request are received by the proxy, it is then returned to the client. This kind of proxy results in the ability to cache dynamic content without having to continuously rely on the server's resources for each request to load the same content. This results in a reduction of resources (like CPU, RAM, I/O) utilized and thus improves the performance of your site.

How Does It Work?

Putting this all together, typically server administrators will combine the use of Apache and Nginx as a reverse proxy to decrease the server resources needed to load a site's content. Depending on Nginx's configuration, when requests are made, it will first check to see if the processes have already been completed.

If the results of the requests do not exist, then Nginx will provide the requests to Apache for processing. Apache will handle the requests (forking/threading the requests) and then return the results to Nginx to serve to the client. If configured, it will also keep the results of the requests cached. This allows Nginx to quickly retrieve and serve them to any other connections that are requesting the same content.

If the results of the requests already exist, then Nginx will quickly retrieve and serve the cached content. Nginx may also be configured to analyze the cached version and update it with changes accordingly. Therefore eliminating the need for Apache to do anything for repeated visits/connections, even as content is updated.

WordPress-optimized Server

Don't worry, you can configure Nginx to handle your WordPress site so that your visitors will be able to see your site's updated content and not just an outdated cached version. Included with your WordPress-optimized server, is the cPanel plugin, Cache Manager. For more information on how you can simply leverage Nginx's caching resources, review our article "Nginx Cache Manager for WordPress-Optimized Servers".

Related Questions

Here are a few questions related to this article that our customers have asked:
Ooops! It looks like there are no questions about this page.
Would you like to ask a question about this page? If so, click the button below!
Ask a Question

Support Center Login

Our Login page has moved, Click the button below to be taken to the login page.

Post a Comment

Name:
Email Address:
Phone Number:
Comment:
Submit

Please note: Your name and comment will be displayed, but we will not show your email address.

0 Questions & Comments

Post a comment

Back to first comment | top

Need more Help?

Search

Ask the Community!

Get help with your questions from our community of like-minded hosting users and InMotion Hosting Staff.

Current Customers

Chat: Click to Chat Now E-mail: support@InMotionHosting.com
Call: 888-321-HOST (4678) Ticket: Submit a Support Ticket

Not a Customer?

Get web hosting from a company that is here to help. Sign up today!