Nginx功能2-虚拟主机-端口绑定和域名绑定(详细解读)


????大家好!我是近视的脚踏实地,这篇文章主要是学习Nginx的第二个功能-虚拟主机-端口的绑定和域名的绑定
     唯有行动  才能解除你所有的不安

虚拟主机,也叫“网站空间”,就是把一台运行在互联网上的物理服务器划分成多个“虚拟”服务器。虚拟主机技术极大的促进了网络技术的应用和普及。同时虚拟主机的租用服务也成了网络时代的一种新型经济形式。
(那么这个虚拟主机其实就是在同一个Nginx里边去部署多个项目)

1.端口绑定

那么先来了解nginx.conf配置文件里边的一些配置项是什么意思,然后再去对应的修改,主要看server这部分.这个server就相当于服务端????:
Nginx功能2-虚拟主机-端口绑定和域名绑定(详细解读)
那么 listen 80;就是表示默认端口号,第二个server_name就是域名或者IP的地址,这里localhost就是表示当前在Linux系统上代表了当前的IP,可以这么理解,那么将来就可以在这配置域名,

location这块就是默认访问的位置,root index;这里就是默认访问资源的目录,那这里就是上次改的index目录,那么下边就是默认访问的资源名称

l最后一部分error_page就是错误页面,那么这几个想要也行,不想要也可以
Nginx功能2-虚拟主机-端口绑定和域名绑定(详细解读)
那了解完之后我们就可以来改一下,把80改成81,如果之前已经启动了nginx,就要使用 ./nginx -s reload命令重新加载一下????:
Nginx功能2-虚拟主机-端口绑定和域名绑定(详细解读)
Nginx功能2-虚拟主机-端口绑定和域名绑定(详细解读)
然后现在80就访问不了????:
Nginx功能2-虚拟主机-端口绑定和域名绑定(详细解读)
需要加上81才可以访问????:
(如果访问不了,可能是因为被防火墙拦截了,需要使用firewall-cmd --zone=public --add-port=81/tcp --permanent 把80这个端口放行了,然后然后再使用firewall-cmd --reload来刷新一下重新访问即可)
Nginx功能2-虚拟主机-端口绑定和域名绑定(详细解读)
那么当然我们可以改一个,我们也可以改几个,啥意思,就是说一个server就代表了一份,我们可以再来一个server,那就是把server再复制一份,那么就相当于部署了两个网站了,那么这里我们一个叫81,一个我们叫82,两个都是localhost我们先不改
Nginx功能2-虚拟主机-端口绑定和域名绑定(详细解读)
然后第一个我们部署访问的是index目录下的资源,那么第二个我们可以部署弄一个,这里还有一个注册页面,也先上传到nginx目录下
Nginx功能2-虚拟主机-端口绑定和域名绑定(详细解读)
Nginx功能2-虚拟主机-端口绑定和域名绑定(详细解读)
然后去修改一下第二个server的root index改成regist,那么就是通过81端口访问index目录下的index.html,通过82端口访问regist目录下的regist.html,然后保存一下
Nginx功能2-虚拟主机-端口绑定和域名绑定(详细解读)
先说明了一下那个regist目录和里边的 regist.html没有半毛钱关系,这里只是为了方便改,所以写一样的,改好之后,就要重新去刷新一下这个配置文件,
Nginx功能2-虚拟主机-端口绑定和域名绑定(详细解读)
然后分别通过81端口和82端口来访问不同的静态资源
(如果82访问不了,可能是因为被防火墙拦截了,需要使用firewall-cmd --zone=public --add-port=82/tcp --permanent 把80这个端口放行了,然后然后再使用firewall-cmd --reload来刷新一下重新访问即可)
Nginx功能2-虚拟主机-端口绑定和域名绑定(详细解读)
Nginx功能2-虚拟主机-端口绑定和域名绑定(详细解读)
那么现在就相当于我在同一个nginx里边去虚拟出了两个主机,部署了两个项目啊,就是端口号来实现虚拟主机的一个配置。

2.域名绑定

1.什么是域名

域名(Domain Name),是由一串用“点”分隔的字符组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置,地理上的域名,指代有行政自主权的一个地方区域)。域名是一个IP地址上有“面具” 。域名的目的是便于记忆和沟通的一组服务器的地址(网站,电子邮件,FTP等)。域名作为力所能及难忘的互联网参与者的名称。域名按域名系统(DNS)的规则流程组成。在DNS中注册的任何名称都是域名。域名用于各种网络环境和应用程序特定的命名和寻址目的。通常,域名表示互联网协议(IP)资源,例如用于访问因特网的个人计算机,托管网站的服务器计算机,或网站本身或通过因特网传送的任何其他服务。世界上第一个注册的域名是在1985年1月注册的。
(那么域名其实就是一个IP的对应关系,我们将来输入访问的地址的时候,输入IP地址+端口号,但是IP太难记,所以有域名的出现)

2.域名级别

(1)*域名

*域名又分为两类:

一是国家*域名(national top-level domainnames,简称nTLDs),200多个国家都按照ISO3166国家代码分配了*域名,例如中国是cn,美国是us,日本是jp等;

二是国际*域名(international top-level domain names,简称iTDs),例如表示工商企业的 .Com .Top,表示网络提供商的 .net,表示非盈利组织的 .org,表示教育的 .edu,以及没有限制的中性域名如 .xyz等。大多数域名争议都发生在com的*域名下,因为多数公司上网的目的都是为了赢利。但因为自2014年以来新*域名的发展,域名争议案件数量增长幅度越来越大 [5] 。为加强域名管理,解决域名资源的紧张,Internet协会、Internet分址机构及世界知识产权组织(WIPO)等国际组织经过广泛协商, 在原来三个国际通用*域名:(com)的基础上,新增加了7个国际通用*域名:firm(公司企业)、store(销售公司或企业)、Web(突出WWW活动的单位)、arts(突出文化、娱乐活动的单位)、rec (突出消遣、娱乐活动的单位)、info(提供信息服务的单位)、nom(个人),并在世界范围内选择新的***构来受理域名注册申请。

例如:baidu.com

(2)二级域名

二级域名是指*域名之下的域名,在国际*域名下,它是指域名注册人的网上名称,例如 ibmyahoomicrosoft等;在国家*域名下,它是表示注册企业类别的符号,例如 .topcomedugovnet等。

中国在国际互联网络信息中心(Inter NIC) 正式注册并运行的*域名是CN,这也是中国的一级域名。在*域名之下,中国的二级域名又分为类别域名和行政区域名两类。类别域名共7个, 包括用于科研机构的ac;用于工商金融企业的comtop;用于教育机构的edu;用于*部门的 gov;用于互联网络信息中心和运行中心的net;用于非盈利组织的org。而行政区域名有34个,分别对应于中国各省、自治区和直辖市。

例如:map.baidu.com

(3)三级域名

三级域名用字母( A~Za~z,大小写等)、数字(0~9)和连接符()组成, 各级域名之间用实点(.)连接,三级域名的长度不能超过20个字符。如无特殊原因,建议采用申请人的英文名(或者缩写)或者汉语拼音名 (或者缩写) 作为三级域名,以保持域名的清晰性和简洁性。

例如:wzf.map.baidu.com

3.域名与IP绑定

一个域名对应一个 ip 地址,一个 ip 地址可以被多个域名绑定。

本地测试可以修改 hosts 文件(C:\Windows\System32\drivers\etc)
(那么其实当我们输入www.baidu.com这个域名后,他会首先去找我们本地的hosts文件,然后找这个文件要对应的IP,看看有没有一个baidu.com对应的IP地址啊,如果有的话就把IP返回,然后再通过80端口去访问百度的服务器,那么如果hosts文件没有,还要通过我们的DNS服务器去找对应的域名和IP的对应关系,这里要知道这么一个解析的过程

那么这里我们肯定没有一个对应的公网的域名,或者说没有去注册去买那个域名,所以我们这里就来改这个hosts文件,这个文件就在C:\Windows\System32\drivers\etc下,去配置一下域名和IP的对应关系就可以了)

可以配置域名和 ip 的映射关系,如果 hosts 文件中配置了域名和 ip 的对应关系,不需要走dns 服务器。

可以看到这个文件全是注释
Nginx功能2-虚拟主机-端口绑定和域名绑定(详细解读)

接着可以来添加一下192.168.10.128 www.wzftravel.com
和192.168.10.128 regist.wzftravel.com 这个IP地址就是当前自己Linux里边的地址,后边就是给他对应的域名,第二个设置了一个二级域名
Nginx功能2-虚拟主机-端口绑定和域名绑定(详细解读)

做好域名指向保存后,就可以来尝试一下,把前面的端口号替换成刚刚设置的域名,因为有了那个解析的文件,他就会把那个IP返回回来了????:
Nginx功能2-虚拟主机-端口绑定和域名绑定(详细解读)
Nginx功能2-虚拟主机-端口绑定和域名绑定(详细解读)
知道了上面这些,我们接下来就可以来完成一些配置了,比如我们想通过不同的域名来访问都是80端口,然后可以看到不一样的页面,或者看到不一样的项目,那么我们只需来修改nginx.conf文件就可以了,那么现在先把两个server的端口都改成80????:
Nginx功能2-虚拟主机-端口绑定和域名绑定(详细解读)
然后把每个server对应的server_name改一下,一个叫做www.wzftravel.com ,还有一个server_name改成regist.wzftravel.com ,改完之后保存
Nginx功能2-虚拟主机-端口绑定和域名绑定(详细解读)
然后需要重新加载一下nginx,重新加载一下刚刚的配置
Nginx功能2-虚拟主机-端口绑定和域名绑定(详细解读)
那么可以看到我输入www.wzftravel.com这个域名,端口是80,不用写,一敲回车就可以访问到index页面????:
Nginx功能2-虚拟主机-端口绑定和域名绑定(详细解读)
然后输入regist.wzftravel.com这个二级域名就可以访问注册页面????:
Nginx功能2-虚拟主机-端口绑定和域名绑定(详细解读)
那么这样就成功地通过不同的域名访问到不同的站点资源,这就是通过域名来实现虚拟主机的一个映射方式,其实就是改这个server_name,和端口,两个没有问题,那么类似的搞3个4个server都可以

本篇博客到这就完啦,非常感谢您的阅读????,如果对您有帮助,可以帮忙点个赞或者来波关注鼓励一下喔???? ,嘿嘿????