浏览 1.1k
请问,niginx 支持使用同一台主机的同一个80端口虚拟多个服务器吗?
比如使用一台主机的80端口同时做www.a.com 和www.b.com 的物理服务器。
如果可以请问配置和原理是什么?
按点赞数排序
按时间排序
配置依赖server_name指令,比如:
http {
server {
listen 80;
server_name www.a.com;
}
server {
listen 80;
server_name www.b.com;
}
}
实现原理也很简单,基于HTTP协议格式前提:域名www.a.com是放在HTTP请求的Host头部中,比如Host: www.b.com。
而Nginx处理与请求时,会首先接收到完整的HTTP头部,再开始根据nginx.conf中的server{ }配置中的server_name域名做匹配,最后决定如何处理(严格来说,是在URL或者Host头部解析到域名后,就会立刻通过哈希表找到对应的server块).
2
回答于2020-08-12 08:56