文章目录
- 虚拟主机原理
- 域名解析与泛域名解析(实践)
- 配置文件中ServerName的匹配规则
- 技术架构
- 多用户二级域名
- 短网址
虚拟主机原理
为什么需要虚拟主机:
- 当一台主机充当服务器给用户提供资源的时候,并不是一直都有很大的用户量,大多数时间这台主机是闲置的,这就造成了资源浪费。为了解决这一问题就需要把一台主机当多个主机使用,所以就有了虚拟主机的需求。
一台主机有多个虚拟主机,当收到用户请求时,是怎么区分请求的是哪个虚拟主机的
- 如上图,Nginx配置了两个域名,但是同一个IP地址。这时就需要http协议报头在有ip地址的基础上再提供请求的域名。这样服务器就能通过不同域名来区分应该响应哪个虚拟主机上的资源了。
域名解析与泛域名解析(实践)
本机配置域名解析 windowns下:
配置多个站点:
1、先创建站点目录(我是在/www目录下创建)
2、分别在video和www目录下创建页面
3、修改nginx配置文件中server部分(一个server对应一个端口,location配置站点目录的路径)
4、刷新nginx配置
sudo systemctl reload nginx
5、访问不同端口查看站点是否生效
上述是通过端口来区分不同站点
也可以通过域名来区分
1、先配置本机域名解析
sudo vim /etc/hosts # 添加你需要的域名
2、修改nginx配置文件(相同端口号不同域名)
3、刷新配置文件后通过域名访问
配置文件中ServerName的匹配规则
1、一个server节点可以配置多个server_name 多个域名访问同一个资源
2、通配符 匹配到的域名都可以访问配置的资源
3、正则匹配 匹配所有数字开头的域名
技术架构
多用户二级域名
不同用户通过不同的域名来访问nginx服务的时候nginx通过泛解析将真实的域名传给最终的服务端(比如tomcat),服务端拿到这个域名后解析字符串的前缀去数据库查询对应的用户信息并返回给nginx,nginx再回显给用户。
tomcat拿到的域名就是二级域名。
短网址
类似于多用户二级域名,当用户需要访问服务器上的资源时,用户输入的网址并不是真实的,而是一个唯一随机串,也叫做短网址。
首先有一个维护短网址的数据库,存储着短网址和真实地址的一一映射。当用户提交请求URI后nginx会将完整的URI反馈给后端应用服务器,应用服务器通过解析URI再查询数据库拿到真实的资源路径并返回给nginx,再由nginx返回给用户。