SharEDITor

教你成为全栈工程师(Full Stack Developer) 三-网站后端服务器那些事

全栈技术 教你成为全栈工程师(Full Stack Developer) 发表于 2016-04-10 15:04:28 阅读5255次


当你访问百度的时候就一个简单的页面呈现在你面前,你觉得这个简单的页面几个人就搞定了,实事上也是这样,但隐藏在百度的后端服务器程序却有数千工位程师在维护着。网站后端服务器就是这众多重要的后端服务器的一种。

请尊重原创,转载请注明来源网站www.shareditor.com以及原始链接地址

互联网上的机器之间是怎么相互访问的?

 

你打开电脑就能相互访问吗?显然需要先接入互联网,也就是常说的“能上网”(插网线、连wifi),这样至少数据信号有途径传播。那么你怎么知道你要连到哪台电脑呢?通过IP地址(门牌号)。每一个接入互联网的电脑都会有一个ip地址,知道某个机器的ip地址就能通过网络协议连接它跟它通信了。

 

但对于我们来说有一个最大的问题,我们的电脑都是在局域网里的(办公网络、小区宽带都是),在局域网里的电脑比较特殊,是一个局域网的ip地址,事实上整个局域网里只有一台电脑(NAT服务器)是有真正的外网ip的,其他电脑都是通过这个有真正ip地址的特殊的服务器转发网络数据,这就存在一个问题就是从外界无法精确定位到一个局域网的机器,这就像是你可以找到北京市昌平区1024号楼一单元110门牌号的人家,但你找不到北京市某个叫做“主卧”的地方。所以很遗憾,我们的个人电脑做不了网站服务器。

 

怎么样搞到网站服务器呢?

 

传统的做法:申请一个固定ip,自己的电脑用这个ip,走出局域网。如今这个方案已经很难而且非常昂贵了,因为32位ip地址几乎被用光了,64位ip地址还没有普及,租用ip费用昂贵到个人是没办法承受的,所以还是考虑下面的方案吧。

现在流行的方案:云服务器供应商,比如阿里云。其实阿里早就囤积了一大批外网ip地址,阿里云服务器就是一个帮你绑定好外网ip地址的远程机器,7*24小时开机提供服务,并把机器的管理员权限全权交给你,就相当于这是你的电脑了,把网站部署在这台机器上就可以了。费用也是很便宜的(流量不大的小网站每个月70元左右)。您现在看到的www.shareditor.com就是我部署在阿里云服务器上的网站。具体阿里云服务器怎么申请怎么用百度一下你就知道。

 

域名是怎么定位到机器的?

 

域名就是指www.shareditor.com这种网址,我们一般在浏览器只输入网址不输入ip,怎么就能访问到网站内容呢?因为自动做了一次域名解析,也就是浏览器自动根据域名解析成对应的ip。这就是电脑里经常需要调整配置的DNS服务。DNS服务器属于互联网基础建设,接入互联网就能使用,不必担心。那么我们做的网站的域名是什么呢?

 

如何指定我的网站的域名?

 

域名和给小孩子起名不太一样,不可以重名。比如人家叫baidu.com,你不能也叫baidu.com,不然大家访问baidu.com就不知所向了。每个国家有专门的域名注册机构,比如中国的新网和万网,你也要去这两处申请。大家应该经常听说过某某公司重金买域名的案例吧,这就是在数年前有人看到了域名的商机,抢先低价注册短域名,n年后就会有人要高价买,从而赚差价。所以现在已经很难申请到短域名了。不管怎么样,还是得起一个容易记得住的域名,然后去新网或万网提交申请,然后需要拿着各种证件去现场确认审核等,国家备案之后才能批下来,整个过程预计半个月吧。不管是万网还是新网,申请成功之后你都可以登录上去并修改你域名对应的ip地址,修改完之后就大功告成啦,互联网上任何人只要浏览器输入你的域名就自动连接你设定的ip地址啦,搞定!

 

给大家看下我的案例吧

1. 注册并登陆阿里云https://www.aliyun.com/,点开“管理控制台”

查看云服务器:

 

请尊重原创,转载请注明来源网站www.shareditor.com以及原始链接地址

登陆阿里云服务器如下:

[root@centos7vm ~]# ssh root@182.92.80.220
root@182.92.80.220's password:
Last login: Sun Apr 10 07:26:16 2016 from 222.129.54.231

Welcome to aliyun Elastic Compute Service!

[root@MYAY ~]# ifconfig |grep inet
        inet 10.162.223.224  netmask 255.255.240.0  broadcast 10.162.223.255
        inet 182.92.80.220  netmask 255.255.252.0  broadcast 182.92.83.255
        inet 127.0.0.1  netmask 255.0.0.0

这里面有三个ip地址,第一个是阿里云局域网内部ip,第二个是外网ip(网站用),第三个是本地回路ip

我的网站服务情况如下:

[root@MYAY ~]# ps aux|grep nginx
root     15743  0.0  0.1  48012  1164 ?        Ss   4月01   0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
nginx    15744  0.0  0.2  50572  2248 ?        S    4月01   0:08 nginx: worker process

[root@MYAY shareditor2.0]# egrep "listen|server" /etc/nginx/conf.d/shareditor2.0.conf
server {
    listen       80;
    server_name  www.shareditor.com;

[root@MYAY shareditor2.0]# netstat -npal|grep "80 "
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      15743/nginx: master
tcp        0      0 182.92.80.220:42483     110.75.102.62:80        ESTABLISHED 1035/AliYunDun

我的域名备案通过阿里代备案系统https://beian.aliyun.com/管理

我的DNS解析配置如下:

因为配了,所以能解析到:

[root@MYAY ~]# host www.shareditor.com
www.shareditor.com has address 182.92.80.220
[root@MYAY ~]# ping www.shareditor.com
PING www.shareditor.com (182.92.80.220) 56(84) bytes of data.
64 bytes from MYAY (182.92.80.220): icmp_seq=1 ttl=64 time=0.023 ms

有了以上这些服务器相关的知识,就可以把你的网站推向互联网啦!