Greeting guys in our new tutorial, last tutorial we have learnt how to configure basic level of web hosting server. This tutorial is also related to web hosting but we will learn how many types of web hosting and how to configure virtual web hosting in apache. Let’s move on World Wide Web;
Introduction
As we know that Apache is a powerful utility/ tool for web hosting server. You can host multiple web sites on a single Linux machine through virtual web hosting in Apache and you can change listen port as well by default apache (HTTP) listen 80. You can change or describe new port for web site.
Virtual Hosting is a technique of hosting on a single web server it may be apache, MS IIS, Nginix etc.
Types of Virtual Web Hosting
There are two types of virtual web hosting.
- Name based Virtual Hosting
- IP based Virtual Hosting
Name based Virtual Hosting
Name based hosting allows you to host more than one web site on a single IP with different domains/ web sites. It is very easy to configure than IP based virtual hosting. We need to configure DNS for deploy the Name based virtual hosting because DNS is the technique to handle/ control the domain name’s web site.
IP based Virtual Hosting
IP based virtual hosting allows you to host only one domain/ web site on a single IP but you can add more than one Network Interface Card (NICs) in your web server or you can assign virtual IPs or by creating virtual NICs to host web site on particular IPs with in the one web server.
We are going to configure two virtual webs with different IPs and name based as well.
Scenario
For First Web For Second Web
IP = 192.168.4.2 IP =192.168.4.3
URL = www.abc.com URL = www.faa.com
Default port 80 Port 8080
For the First Web
First you need to make a directory/ folder in /var/www/html/ by using command mkdir. Syntax mkdir path/dir-name
[root@faraz ~]# mkdir /var/www/html/abchost
Make a web file by using command touch. Here I am going to name that file as index.html.
[root@faraz ~]# touch index.html
Now open file by using command vi and here I am going to write some basic syntax of html for testing the virtual web hosting.
[root@faraz ~]# vi /var/www/html/abchost/index.html <html> <title> www.shahid-academy.com</title> <body> <h1> Welcome Guys to Virtual Hosting </h1> 192.168.4.2 </body> </html>
For the Second Web
Repeat these steps with minor changes.
Make a directory/ folder in /var/www/html/ by using command mkdir for the second web. Syntax mkdir path/dir-name
[root@faraz ~]# mkdir /var/www/html/faa
Make a web file by using command touch. Here I am going to name that file as index.html.
[root@faraz ~]# touch index.html
Now open file by using command vi and here I am going to write some basic syntax of html for testing the virtual web hosting.
[root@faraz ~]# vi /var/www/html/faa/index.html <html> <title> www.shahid-academy.com</title> <body> <h1> Welcome Guys to Virtual Hosting </h1> 192.168.4.3:8080 with port number </body> </html>
Permission and Ownership of hosting folders/ directories
Give them permission for user = all, group/ other = read & write.
[root@faraz ~]# chmod -R 755 /var/www/html/
Here ownership apache is for user and group by using chown command.
[root@faraz ~]# chown -R apache:apache /var/www/html/abchost/index.html
[root@faraz ~]# chown -R apache:apache /var/www/html/faa/index.html
Configuration in Apache (httpd. conf)
We are going to add/ make some parameters/ changes in httpd.conf file. Path of the configuration file is /etc/httpd/conf/httpd.conf. Now open it on a command line by using vi editor.
For the First Web
Make changes in Main Configuration area where are going define directives. By default it listens port is 80 and it is mention above of that area.
[root@faraz ~]# vi /etc/httpd/conf/httpd.conf Listen 80 <VirtualHost 192.168.4.2:80> ServerName www.abc.com:80 ServerAlias www.abc.com ServerAdmin [email protected] DocumentRoot /var/www/html/abchost CustomLog /var/log/httpd/abc.log combined ErrorLog /var/log/httpd/abc.log.error </VirtualHost>
For the Second Web
Define port 8080 as well for access the site on that port.
[root@faraz ~]# vi /etc/httpd/conf/httpd.conf Listen 8080 <VirtualHost 192.168.4.3:8080> ServerName www.faa.com:8080 ServerAlias www.faa.com ServerAdmin [email protected] DocumentRoot /var/www/html/faa CustomLog /var/log/httpd/faa.log combined ErrorLog /var/log/httpd/faa.log.error </VirtualHost>
Outputs
Name Based
IP Based
In this tutorial we have learnt virtual hosting with name and IP based configuration. I hope you will easily understand this article and now a days virtual hosting is very popular for hosting the web sites.
Thanks