Nginx (pronounced "engine x") is a web server. It can act as a reverse proxy server for TCP, UDP, HTTP, HTTPS, SMTP, POP3, and IMAP protocols, as well as a load balancer and an HTTP cache. It's one of the most popular web servers in the world and is responsible for hosting some of the largest and highest-traffic sites on the internet.
In this tutorial we are using CentOS 7, however you should be able to install it on all our offered CentOS version.
Nginx vs. ApacheBoth web servers, in their latest versions, can compete with each other in most areas. For static content NGINX is king, but for dynamic content the performance difference is quite slim. NGINX does shine with some of its more advanced features (media streaming, reverse proxying for non-HTTP protocols), as well as its commercial support and training.
High-traffic website owners that need to serve a lot of static content and/or media streams will probably prefer NGINX (or use a combination of Apache and NGINX). In most other website use cases, either web server will do the job just fine.
Both Apache and Nginx are powerful, flexible, and capable. Deciding which server is best for you is largely a function of evaluating your specific requirements and testing with the patterns that you expect to see.
Turning Off ApacheEvery major Linux distribution comes packages with Apache by default, no exception and our offered templates. So in order to install and start using Nginx first of all we need to turn of Apache:
service httpd stop
Now we need to remove Apache from the boot cycle, so that it doesn’t try to start up during server boot:
systemctl disable httpd
Installing NginxNow we need to add the CentOS EPEL package so that we can install NGINX:
yum install epel-release -y
Now we can install Nginx easily:
yum install nginx -y
As IPv6 is not supported on Time4VPS servers we need to delete line about it's interface from the configuration file. We can do it with command:
sed -i '/\[::\]:80/d' /etc/nginx/nginx.conf
Start Nginx and configure server to start it upon reboot:
service nginx start
systemctl enable nginx
Checking the Web ServerAfter Nginx is installed we should check is it running properly. We can do it by visiting your server's hostname or IP address:
http://hostname_or_IP_of_your_serverYou should see the default Nginx landing page, which should look something like this:
Server Root and ConfigurationIf you want to start serving your own pages or application through Nginx, you will want to know the locations of the Nginx configuration files and default server root directory.
Default Server RootThe default server root directory is
/usr/share/nginx/html
. Files that are placed in there will be served on your web server. This location is specified in the default server block configuration file that ships with Nginx, which is located at
/etc/nginx/conf.d/default.conf
.
Server Block ConfigurationAny additional server blocks, known as Virtual Hosts in Apache, can be added by creating new configuration files in
/etc/nginx/conf.d
. Files that end with
.conf in that directory will be loaded when Nginx is started.
Nginx Global ConfigurationThe main Nginx configuration file is located at
/etc/nginx/nginx.conf
. This is where you can change settings like the user that runs the Nginx daemon processes, and the number of worker processes that get spawned when Nginx is running, among other things.