Create Virtual Host Nginx Centos 7

Create Virtual Host Nginx Centos 7

What is a Virtual Host?

A virtual host is a server hosting multiple domain names on the same web server. This type of hosting eliminates the need to buy additional hardware or lease more resources from a hosting provider. Instead, several domains can share the same resources on a single server. It also allows websites to be hosted in a single physical location. This is especially beneficial for businesses that require multiple websites or services that revolve around their main website.

Another benefit of using a virtual host is that it is cost effective. Instead of buying multiple server and domain names, a single server can be used to host several domain names. This makes it easier to manage the web hosting requirements of each website. By doing so, businesses can save on hosting costs.

Finally, virtual hosts also make it easier to manage web hosting accounts. All domain names hosted on a single web server can easily be managed from one administrative interface. This simplifies the setup and management of multiple websites or services on the same web server.

What is Nginx?

Nginx is an open source web server. It is the leading web server on the internet, being used by many of the largest websites in the world. Nginx is a versatile web server, providing features such as load balancing, caching, and serving web pages quickly and efficiently. It is also highly secure; Nginx uses SSL encryption and other security measures to protect sensitive data and keep malicious users and bots out.

Nginx is also an excellent choice for hosting multiple website on the same web server. It is easy to setup and configure virtual hosts with Nginx. In addition, Nginx offers many features, such as URL rewriting, that make it a great choice for setting up multiple domains on a virtual hosting platform.

Installing Nginx & Hosting Multiple Websites with Nginx on CentOS 7

Installing Nginx on CentOS 7 is relatively easy. The default package repository comes with Nginx, so all you need to do is install it with the yum command.

The first step is to open a terminal window and becoming a root user. Then install the Nginx package with the yum command:

yum install nginx

Once Nginx is installed, it can be started with the systemctl command:

systemctl start nginx

Once the Nginx web server is running, the virtual host configuration files can be set up. In CentOS 7, these files are located in the /etc/nginx/conf.d/ directory. Each domain name has its own configuration file. These files contain directives, such as the document root, that specify how web requests are handled.

The configuration files for virtual hosts should follow the following template. The domain name should be replaced with the domain names that you want to host:

server {
listen 80;
root /var/www/;
index index.html index.htm;

Once the configuration files have been saved, Nginx should be restarted with the systemctl command. The server should now be ready to accept web requests for all the domains:

systemctl restart nginx

Configure DNS Records for Your Virtual Hosts

In order for your virtual hosts to work, the domain names need to be pointed to the IP address of the server. This is done with DNS records. Every domain name needs an A record that points to the IP address of the server.

In most cases, the DNS records are managed by your domain name registrar. If you are using Google Domains, the records can be managed from the Google Domains portal. In some cases, the web hosting provider might manage the DNS records for the domain names.

Once the DNS records have been set up, the domains should be pointing to the server. This can be checked with a DNS lookup tool or by simply visiting the domain name in a web browser.

Testing Your Virtual Hosts

Once the DNS records have been set up and the domain names are pointing to the server, you can test your virtual hosts. This is done by creating a simple page and uploading it to the server. The page should be uploaded to the document root of each domain. This will allow you to easily verify that the domains are pointing to the correct location.

For example, you can create a simple “Hello World” page and upload it to the document root. Then, when you visit the domain in a web browser, you should see the “Hello World” page.

If all of the domains are pointing to the correct location and the domains are loading properly, then the virtual hosts have been setup successfully.

Managing Virtual Host On Nginx with SSL Support

Nginx can also be used to manage virtual host with SSL support. SSL certificates can be requested and renewed from a Certificate Authority. Once the SSL certificate has been obtained, it can be stored in the /etc/ssl/ directory on the server. The location of the SSL certificate should be specified in the virtual host configuration files.

In addition, you can force outbound connections to be secured by using the ssl_prefer_server_ciphers directive. This directive prevents encryption downgrade attacks when accessing SSL websites through a proxy server.

Finally, you can also enable HTTP Strict Transport Security (HSTS) for your virtual hosts. This will ensure that all connections to your domains are secured with SSL encryption and that they are not vulnerable to man-in-the-middle attacks.


Virtual hosting with Nginx on CentOS 7 is a great way to host multiple domains on the same server. By using virtual hosting, businesses can save on hardware and hosting costs. Setting up multiple domains on Nginx is easy, and it can be done securely with SSL encryption and other security measures.

Thank you for reading this article. Please read other articles for a more in-depth understanding of setting up virtual hosts with Nginx.

Leave a Reply

Your email address will not be published. Required fields are marked *