一 . 概述
在前面的介绍之中,我们知道ngingx可以帮助我们拦截所有的请求,然后帮助我们实现请求的分发,也就是说,nginx可以帮助我们做为一个前端控制器的存在.
通过这个功能,我们就可以完成大量的操作,比如实现虚拟主机,实现反向代理,进而实现动静分离和负载均衡.
本次,我们首先实现一个最基本功能,就是完成一个http服务器最为基本的功能,配置一个虚拟主机.
二 . 虚拟主机
在前面,我们一直在强调,我们的请求可以通过nginx进行分发,通过不同的分发模式,我们可以创建不同的虚拟主机.
在nginx之中,配置虚拟主机的方式基本可以分成三种:
(1)域名的分发 (2)端口的分发 (3)ip的分发.
在下面我们演示一下这三种情况的具体实现.
[1] 域名的分发
为了模拟这个情况,我们首先将我们的host文件进行修改.
192.168.0.111 www.trek.com 配置这样的一个ip映射 .
然后我们修改我们的nginx的配置文件.
我们将nginx的一个server的配置为server_name 为www.trek.com,也就是说我们配置了一个域名为www.trek.com的虚拟主机.
当我们使用浏览器请求www.trek.com的时候,由于本地的host文件生效,会将我们的域名转换为192.168.0.111的ip,进而请求就被nginx接管.
而nginx会匹配我们的请求,将我们的请求映射到了对应的server_name的主机之上.
[2]端口的分发
我们配置了一个监听88端口的虚拟主机,当一个访问nginx的请求被映射到一个域名为www.trek.com且访问的端口号为88的时候,我们就可以访问nginx的首页了.
[3]ip的分发
我们现在配置的一个虚拟主机,可以帮助我们将请求的端口号为80,访问的ip为192.168.0.111的请求拦截到.
三 .总结
尽管我们在上面好像分成了三个部分说明nginx的虚拟主机的配置,但是归根结底还是一种情况,nginx会帮助我们将请求转发给对应的虚拟主机上.
我们配置的server_name 加上端口号其实就是我们的虚拟主机的唯一标示.