4.3 KiB
+++ title = "狐式流建站教程索引" author = ["SouthFox"] date = 2022-11-24T17:29:00+08:00 lastmod = 2022-11-24T19:02:09+08:00 tags = ["publish", "newbie"] draft = false +++
互联网冲浪时到底发生了什么?
互联网
平常使用互联网时,都是非常下意识的,抽象到只需手指鼠标轻轻一点。就如同日常生活的邮递系统,只要按照标准去使用寄送东西,那么运输、转送、配送这些东西也不用自己操心了,隐藏了很多复杂。
我→[互联网]({{< relref "nw_互联网.md" >}})→想访问的内容
域名
但是实际上是通过[域名]({{< relref "nw_域名.md" >}})来在互联网之间进行跳转的,只要知道域名,就如同寄快递时也需要一个「地址」,这个地址就相当于域名。
我→[域名]({{< relref "nw_域名.md" >}})→想访问的内容
域名解析
但是计算机世界实际是根据[IP 地址]({{< relref "nw_ip_地址.md" >}})来去寻找对方的,所以就需要将域名转换成 [IP 地址]({{< relref "nw_ip_地址.md" >}}),这就是 [DNS]({{< relref "nw_dns.md" >}}) 。 [域名]({{< relref "nw_域名.md" >}})就如同 XX 有限公司,XX 大酒店一样,只是一个形式上的,而 [IP 地址]({{< relref "nw_ip_地址.md" >}})就像 XX 市 XX 区 XX 街 XX 号一样,是一个实际的地址。平常在上网冲浪时,这种地址转换都通过[DNS 服务器]({{< relref "nw_dns.md" >}})自动解决的。
我→[域名]({{< relref "nw_域名.md" >}})→[DNS 服务器]({{< relref "nw_dns.md" >}})→[IP 地址]({{< relref "nw_ip_地址.md" >}})→想访问的内容
服务器
实际上互联网上想访问的东西当然是要一个实际的物理设备来提供不管是 [HTML]({{< relref "nw_html.md" >}}) 网页啦,还是媒体文件等,这个设备就是[服务器]({{< relref "nw_服务器.md" >}}),同时[服务器]({{< relref "nw_服务器.md" >}})准备好内容后就通过请求中附带的发件人地址来反过来发送。就像日常网狗时,要填入自己的地址卖家才能把内容寄过来。
我→[域名]({{< relref "nw_域名.md" >}})→[DNS 服务器]({{< relref "nw_dns.md" >}})→[IP 地址]({{< relref "nw_ip_地址.md" >}})→[服务器]({{< relref "nw_服务器.md" >}})
[服务器]({{< relref "nw_服务器.md" >}})→想访问的内容→[互联网]({{< relref "nw_互联网.md" >}})→我
建站时到底在要是在干什么?
应用
根据上文一个简单的描述,大概就能知道实际上的建站是在干什么了,首先需要一个[服务器]({{< relref "nw_服务器.md" >}})来提供所需的内容,但是服务器本身只是一个机器而已,就如同只是一片土地而已。实际上提供服务的是搭建在这片土地上的应用,比如网盘应用、博客应用、笔记应用等。
用户→[互联网]({{< relref "nw_互联网.md" >}})→服务器→具体的应用→用户想访问的内容
用户想访问的内容→[互联网]({{< relref "nw_互联网.md" >}})→用户
端口
如果说计算机世界是用 [IP 地址]({{< relref "nw_ip_地址.md" >}})来区分具体的机器,那么机器内就是用[端口]({{< relref "nw_端口.md" >}})来区分具体的应用了。
用户→[互联网]({{< relref "nw_互联网.md" >}})→[端口]({{< relref "nw_端口.md" >}})→服务器→根据[端口]({{< relref "nw_端口.md" >}})号寻找具体的应用→用户想访问的内容
反向代理
端口的目的就是为了区分不同应用的数据(想想热水管道和污水管道),但是互联网大家平常默认使用的端口并不多,那么如何让一个端口分配给多个不同的应用使用呢,这就是[反向代理]({{< relref "nw_反向代理.md" >}})(典型干这种事的就是 [Nginx]({{< relref "nw_nginx.md" >}}))。
用户→[互联网]({{< relref "nw_互联网.md" >}})→[端口]({{< relref "nw_端口.md" >}})→服务器→[反向代理]({{< relref "nw_反向代理.md" >}})应用([Nginx]({{< relref "nw_nginx.md" >}}))→根据请求里的[域名]({{< relref "nw_域名.md" >}})将请求传递给[端口]({{< relref "nw_端口.md" >}})号对应的应用→用户想访问的内容