虚拟主机使用的是特殊的软硬件技术,它把一台运行在因特网上的服务器主机分成一台台“虚拟”的主机,每台虚拟主机都可以是一个独立的网站,可以具有独立的域名,具有完整的Intemet服务器功能(WWW、FTP、Email等),同一台主机上的虚拟主机之间是完全独立的。从网站访问者来看,每一台虚拟主机和一台独立的主机完全一样。
利用虚拟主机,不用为每个要运行的网站提供一台单独的Nginx服务器或单独运行一组Nginx进程。虚拟主机提供了在同一台服务器、同一组Nginx进程上运行多个网站的功能。
配置方式:
- 基于域名的虚拟主机
- 基于ip的虚拟主机
- 基于端口的虚拟主机
我们在nginx.conf 配置文件简介中,介绍配置文件的时候,就提到过http下可以有多个server虚拟主机。现在我们可以使用vim打开我们的nginx.conf配置文件,如下:
上图中,我们我们就可以进行配置多个server,但是我们一般不会这么进行设置,常见设置如下:
首先我们会将上图中的server配置删除,然后引入server的配置文件,如下
这里我们需要新建一个目录,就是上图中所引入的目录路径,并且在其中创建一个test.conf文件
在刚刚创建的文件中,填入下列内容,其中下面的内容,就是我们之前在nginx.conf中删除的server配置的内容,只是我们做出了一些修改,我们让其监听了192.168.80.130这个ip,其实就是我们虚拟机的ip,使用默认的localhost也是一样的,然后我们让访问这个ip的请求全部访问500,其中500页面是会被指定了一个html页面的。
(error_page在上次的nginx.conf配置文件中,我们没有提及,error_page里面一般都是服务器发送了错误,然后我们没有直接让页面显示服务器错误,而是让其返回了一个固定的页面,比如一个访问异常等html页面)
文件保存好之后,我们会将复制一个test2.conf文件,然后再对其进编辑
test2.conf内容如下,也是我们之前从nginx.conf复制的内容,我们在其中就是将其 server_name 将其修改了,现在它只处理访问 www.kami.com 的请求
然后我们将其保存,这里我们肯定是没有 www.kami.com 这个域名的,只是我们随便写的,这里我们需要在windows下的host文件进行修改保存,如下:
然后如果还想要测试端口的不同,我们可以再复制一个文件,然后修改其监听的端口号,现在我们就不进行修改了,步骤都是一样的。
这里我们可以先检测一个配置文件是否正确,然后再重启Nginx
最后我们就可以进行测试了,首先我们访问一下192.168.80.130这个IP,结果如下:
然后我们在访问一下www.kami.com的域名,如下