nginx域名解析
虚拟主机:
简单来说,虚拟主机就是可以在一台nginx服务器上运行多个网站。nginx可以通过配置多个server来配置多台虚拟主机,一个server对应一台虚拟主机。一台虚拟主机上可以部署一个网站。各个虚拟主机的ip地址是相同的,但是一个ip可以绑定不同的域名,所以每台虚拟主机都可以拥有自己的域名和端口号,但是80端口只有一个,一般情况下,多台虚拟主机公用80端口,然后根据域名来区分客户端请求的到底是哪一台虚拟主机,哪一个网站。
配置虚拟主机可以基于端口号,IP和域名。1.基于端口号的虚拟机主机:nginx监听多个端口,根据不同的端口号;来区分不同的网站。2.基于域名的虚拟主机:实际的场景中,访问一个网站都是通过不同的域名访问,所以基于域名的虚拟主机是最常见的,不同的域名可以解析指向同一个ip地址,而nginx在解析请求的时候会根据不同的域名来指向不同服务。3.基于IP的虚拟主机;一台主机可以拥有超过1个ip地址,通过不同的ip地址,指向不同的服务。
一台nginx服务器配置多个站点
只需保证监听端口、配置域名两者组合不一致即可。
两个站点如下:
两个站点目录test1
index.html内容
hello1
test2目录
index.html内容
hello2
监听不同域名
server {
listen 80;
server_name test1.likelong.icu;
location / {
root /www/test1;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 80;
server_name test2.likelong.icu;
location / {
root /www/test2;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
记得修改完配置文件,重启nginx。
访问test1.likelong.icu
访问test2.likelong.icu
如果匹配不到就会访问第一个站点:
单个nginx服务器部署两个站点。
监听不同端口
server {
listen 80;
server_name test1.likelong.icu;
location / {
root /www/test1;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 81;
server_name test1.likelong.icu;
location / {
root /www/test2;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
访问test1.likelong.icu
访问test1.likelong.icu:81,访问该地址显示无法访问此网站,应该是81端口没开放。
去阿里云安全组开放81端口
再次访问就正常了
也是可以单个nginx服务器部署两个站点。
泛域名
所谓“泛域名解析”是指:利用通配符* (星号)来做次级域名以实现所有的次级域名均指向同一IP地址。
好处:
1.可以让域名支持无限的子域名(这也是泛域名解析最大的用途)
2.防止用户错误输入导致的网站不能访问的问题
3.可以让直接输入网址登陆网站的用户输入简洁的网址即可访问网站
泛域名在实际使用中作用是非常广泛的,比如实现无限二级域名功能,提供免费的url转发,在IDC部门实现自动分配免费网址,在大型企业中实现网址分类管理等等,都发挥了巨大的作用。
在阿里云的泛域名配置如下:
只需在主机记录填上*
即可,上述一台nginx服务器配置多个站点使用的域名就配置了泛域名解析配置如下。