图解Web服务器

很早以前,我就在想一个问题,为什么在浏览器中输入 www.baidu.com 就能出来百度首页,这个过程究竟是怎么一回事呢?本文概述的描述此过程。

目录:
1. 初体验
2. IP 地址
3. 端口 port
4. nginx 服务器
5. 域名

1. 初体验

下载 nginx1.12.1 window 64位。下载完成解压缩,无需安装,可直接使用。目录结构如下:

nginx目录

打开 html 目录,用以下内容替换 index.html 的内容:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>这是我的个人网站</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>千千阙歌</h1>
来日纵是千千阙歌 <br>
飘于远方我路上 <br>
来日纵是千千晚星 <br>
亮过今晚月亮 <br>
都比不起这宵美丽 <br>
亦绝不可使我更欣赏 <br>
</body>
</html>

打开 conf 目录修改 nginx.conf 文件。

......
server {
        # 修改端口为 3000,默认为 80
        listen       3000;        
        server_name  localhost;
........

双击 nginx.exe 运行程序。 打开浏览器输入 127.0.0.1:3000 就可以看到刚刚创建的个人网站。

个人网站

当然,可别以为如此简单就创建了一个网站。你迫不及待的霸占了坐在你旁边同事的机器,在他的电脑浏览器里也输入 127.0.0.1:3000,结果并没有出现想象中的网页。这是为什么呢?要解释这个问题,得先介绍下 IP 和端口的相关常识。

2. IP 地址

以前看过一本黑客小说,里面写到:“只要知道别人的 IP 地址,就可以入侵别人的电脑”。计算机如果没有连接网络,是不会有 IP 地址的,此时任黑客多牛逼,也不可能进入你的计算机。这也是电脑中病毒后第一时间断网的原因。

  • 公网 IP
  • 内网 IP
  • 127.0.0.1localhost

电脑连网,实际上只做了两件事情:接收别人发来的数据,给别人发送数据。这些数据都是由 0 和 1 组成的二进制的数据,如:1011010100001101......,你所看到的视频,文字,网页等等一切在做网络中都会转换为 0 和 1,当然,这部分后面介绍 http 头信息时会详细介绍。

既然要接收信息和寄出信息,那么就需要一个地址。每一台连网的计算机都会有一个 IP 地址。计算机连接公司的网线上网,就使用公司的 IP 地址 IP1,计算机连接家里的网线,就使用家里的 IP 地址 IP2。

计算机 IP 地址

不管是公司的 IP 还是家里的 IP,最初都是在相关部门登记过的,直接由相关部门分配的一个地址。这样的 IP 叫做公网 IP,可以直接在百度中查询公网 IP 地址。

查询公网 IP 地址

通常在家里,会安装一个路由器,然后用你的计算机和移动设备去连接路由器,此时路由器的 IP 是公网 IP,而路由器会自动创建子 IP 分别给你的计算机或者手机使用,由路由器分配的子 IP 就叫做内网 IP。可以通过在 DOS 窗口 敲入 ipconfig 获取,格式如:192.168.1.101,其中,前面 192.168.1 是固定格式,最后一位是随动的。

查询内网 IP 地址

通常本机 IP 是不固定的。如果你使用公司网络上网会是一个 IP 地址,而回到家里使用家里的网络又会是另一个 IP 地址。因此规定 127.0.0.1 或者 localhost 特指本机的 IP。

为什么要分公网 IP 和内网 IP 呢?其实在别人访问你的计算机时,只会访问公网 IP 或者是内网 IP 其中一个。如果是连接同一个路由器的其它计算机访问你的计算机,只能通过内网 IP 访问,此时通过公网 IP 是无法访问的,因为你们属于一个公网 IP 下。这一点在后面介绍 DNS 协议时会详细介绍。

有了 IP 地址,就可以找到某一台计算机。如最初在浏览器中输入 127.0.0.1:3000 就找到了当前计算机。那么 3000 又是什么意思呢?下面介绍端口的含义。

3. 端口 port

如果现在一边在线听音乐,一边和朋友聊 qq,那么这个过程是怎样的呢?

在线听音乐和聊 qq 都是需要连网的。这一点通过 IP 地址可以做到。以 qq 音乐为例:需要通过互联网获取音乐数据然后放到计算机的播放器中进行播放;而 qq 聊天需要连接网络接收朋友的短消息然后放到消息框中显示。如何保证这两个步骤传输的数据不会弄错呢?即音乐数据传到了 qq 聊天里,qq 聊天数据传输到了音乐里?这就涉及到了端口。

如果给 qq 音乐分配一个端口 4000(举例数字,实际并不是此端口,以下 5000 一样也是举例数字),给 qq 聊天分配一个端口 5000,并且规定在网络中传输数据时必须使用 ip:port 的方式作为地址。通过 ip 地址找到指定计算机,通过 port 找到计算机中运行的某一个应用程序,此时就可以准确的将数据传输到指定应用程序而不至混淆。

端口

4. nginx 服务器

此时再回过头来看一看 127.0.0.1:3000 就豁然开朗了。127.0.0.1 是本地计算机的 IP 地址,而 3000 是 nginx 应用程序占用的端口号,这一点在最开始介绍的 conf 目录中的 nginx.conf 中有设置过。

此时,想要使用你同事的计算机访问你的网站就很容易了。

  • 确定你的 ip 地址。如果你同事和你连接的都是同一个路由器的网络,那么通过 DOS 窗口 中键入 ipconfig 查看内网 IP 地址。如果不是连接同一个路由器的网络,那么通过百度搜索 ip 获取你的外网 IP 地址。这里假定为内网 ip,地址为:192.168.1.101
  • 确定在你的计算机上启动了 nginx 应用程序。应用程序只有被启动,端口号才会生效。上面设置的端口号为 3000
  • 在你同事的计算机浏览器中输入 192.168.1.101:3000。此时应该就可以看到你的网站了。

服务器nginx 是一款 Web 服务器应用程序,必须得运行着才能访问网站。通常所说的 Web 服务器指的就是类似 nginx 这种应用程序,类似的 Web 服务器应用程序还有 tomcat

服务器与 Web 服务器:我将服务器总结为可以通过 ip:port 的方式找到,并且提供相应服务这样一个应用程序。 如 Nginx 服务器就是通过 ip:port 找到,并且提供网页服务,让我们在浏览器中可以看到网站。如通常所说的 Linux 服务器,其实就是 Linux 系统上的一个远程控制应用程序,这个应用程序启动后默认端口是 22,通过 <ip>:22 就可以连接到远程控制应用程序,而这个远程控制应用程序所做的事情就是启动 Linux 的 shell 终端。

服务器地址:服务器 nginx 是运行在计算机上的,通过 ip 可以确定计算机位置,通过 port 可以确定 nginx 位置,因此 ip:port 就被称为服务器地址。此处示例的192.168.1.101:3000 就是本机上 nginx 的服务器地址;

5. 域名

当年一老兄闲着没事注册了 360 这个域名,后来 360 公司做大做强之后想要买回这个域名,可是花了一个亿人民币。

看到上面可能还有些疑惑,为什么百度的网址是 www.baidu.com 简单易记,而咱的网站就是 192.168.1.101:3000 这么一串数字呢?

按 F12 打开控制台,切换到 Network 选项卡,重新输入百度地址,可以看到信息如下图所示。事实上,访问的 服务器地址115.239.210.27:443。而 baidu.com 是它的别名,方便记忆,也被叫做 域名

百度域名

域名注册:域名需要在 域名注册机构 上进行注册,说是注册,其实就是购买,而且还是按照年限购买的,并不是买一个域名就永久拥有它,这一点与中国房屋占有权 60 年期限有点像。

域名备案:注册过域名要进行备案,也就是让国家网络部门知道这个域名被谁用了,这过程是实名制的,防止你注册个域名结果弄个小黄网侵害青少年或干其它违法犯罪的事。建议在 阿里云腾讯云 这样的厂商购买域名,后期域名备案也是一站式服务,只需填写信息等待即可。这个过程大概需要 30 天左右。

域名解析:域名备案成功之后就是域名解析了,将域名与 ip 一一对应。这个过程自己操作不理解的话有点困难。当初第一个域名是在新网买的,以为买了域名在浏览器中输入就有东东,殊不知域名就是个别名,不绑定 ip 卵用也没,不过刚接触这个,域名解析也不会搞就浪费了。第二个域名是在腾讯云上买的,解析也很方便,引导信息也很清楚。

域名解析

nginx 服务器配置:如果域名解析也完成后,只需将注册的域名在服务器的配置文件:conf 目录下的 nginx.conf 文件做相应修改即可。

......
server {
        # 修改端口为 3000,默认为 80
        listen       3000;        
        # 服务器域名配置,修改为 dkvirus.com,默认为 localhost
        server_name  dkvirus.com;
........

此时在浏览器中输入 dkvirus.com:3000 就和输入 127.0.0.1:3000 是一样的啦。是不是感觉后面还有个 3000 尾巴很不爽。域名只是 ip 的别名,与端口无关。

http 协议规定,如果端口是 80,那么可以默认不写。

还是对 conf 目录下的 nginx.conf 文件做相应修改。

......
server {
        # 修改端口为 80,默认为 80
        listen       80;        
        # 服务器域名配置,修改为 dkvirus.com,默认为 localhost
        server_name  dkvirus.com;
........

重启 nginx 服务器,此时在浏览器中只需要输入 dkvirus.com 就可以打开网站了。其实应该写成 dkvirus.com:80,只不过 80 端口默认可以不写,于是就变成了 dkvirus.com

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,454评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,553评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,921评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,648评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,770评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,950评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,090评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,817评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,275评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,592评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,724评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,409评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,052评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,815评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,043评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,503评论 2 361
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,627评论 2 350

推荐阅读更多精彩内容

  • 名词延伸 通俗的说,域名就相当于一个家庭的门牌号码,别人通过这个号码可以很容易的找到你。如果把IP地址比作一间房子...
    杨大虾阅读 20,592评论 2 57
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,637评论 18 139
  • Nginx是一个轻量级的,高性能的Web服务器以及反向代理和邮箱 (IMAP/POP3)代理服务器。它运行在UNI...
    零一间阅读 2,192评论 0 12
  • 第一章 Nginx简介 Nginx是什么 没有听过Nginx?那么一定听过它的“同行”Apache吧!Ngi...
    JokerW阅读 32,650评论 24 1,002
  • 日子就这样平淡无奇地过着,我似乎忘了自己是那么爱读书,写作。心情很平淡,有时小烦闷,有时感觉轻松,不知说什么好。偶...
    lily糖阅读 164评论 0 0