多租户虚拟主机如何实现?

问题描述

Github pages 使用了 name-based virtual hosts 技术了吗?
在 github pages 这种多用户使用同一个 ip 下多个域名指向,具体是怎么实现的?

问题出现的环境背景及自己尝试过哪些方法

真的是创建一个 github pages 就在服务器的配置文件中添加一个配置代码块同时将编译好的静态文件移动到制定目录吗?

期待的结果?

是不是 github pages 实现这个功能的时候用Java 或者任意的业务语言实现了一种“路由”机制?

问题出现的平台版本及自己尝试过哪些方法

阅读 2.5k
2 个回答

GitHub用的Nginx,可以查一下server_name这个配置项。
Nginx接收到HTTP请求后,处理过程大概如下:

  1. 取出请求的端口
  2. 根据端口号找到对应的IP地址数组
  3. 找到对应的IP地址数组后,再查询域名hash表,如果没有找到,就用当前的IP地址所在的配置,如果找到了,使用域名所在的配置

查找域名的规则是:

  1. 如果有完全匹配的返回完全匹配的域名,如请求域名为www.test.com,server_name配置的值是www.test.com
  2. 如果满足前向匹配,返回前向匹配的域名,如请求域名为login.test.com,server_name配置的值是*.test.com
  3. 如果满足后向匹配,返回后向匹配的域名,如请求域名为www.test.org,server_name配置的值是www.test.*

google : nginx 动态配置。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题