云服务器不做个网站可惜了。
即使是个简单的网站也是会让人有成就感的。
0,预备工具
PC
网络
云服务器
linux(cent os)
nginx
python
flask
一,预备知识
我们都知道当你用浏览器访问一个网站时,先输入域名,然后被dns解析成IP地址,即是运行此网站的计算机的网络地址,各种路由机把你的访问请求送达此地址,服务机收到请求后,通过预定的规则返回给你特定的信息。
理论上任意一台计算机都是可以向外界提供网站的,只要能符合特定的网络协议(TCP:http(s))。主流计算机都是符合硬件层互联网协议的,主流软件也被设计成符合互联网标准的。所以,在此基础上,我们只需要在计算机上开启一个TCP端口(比如80端口),然后搭建一系列计算机指令,随时监听端口,并准备好特定的信息以备返回给访问者,当侦测到请求,便按照约定的方式返回特定的信息。
鉴于数字信息的复用性,我们可以轻易向他人取得计算机指令的完全复制,比如nginx程序,它被设计用来监听TCP端口,并发送信息,可以用它实现完整的网站服务。
二,一个基于nginx的简单网页
云服务器配置好以后,
systemctl enable firewalld #开机自启防火墙
systemctl start firewalld #启动防火墙
firewall-cmd --list-all #查看防火墙规则
firewall-cmd --permanent --add-port=80/tcp #一直开放tcp端口80
firewall-cmd --reload #修改配置后要重启防火墙
输入nginx,启动,
如果有nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use),使用(sudo )fuser -k 80/tcp命令关闭80端口的占用。
然后通过pc访问云服务器的公网IP,就能看到nginx返回的内容了。
三,给服务器添加应用以实现动态网站
nginx只能单纯的收发信息。我们可以使用脚本语言(php,js,python...)来动态改变我们的html页面,让我们的网站变得更加丰富多彩,而不必为每一个不同的请求创建一个单独的html页面。
但是大多脚本语言无法直接处理http报文,所以还需要一个工具,基于你所选择的脚步语言,它能让你通过脚本语言处理http报文。
因为我使用python,所以我选择了一个用python把主体功能写好的程序,flask,由于flask已经预先实现了处理web请求的主体功能,所以你可以直接拿来添加一些参数就可以用了。flask也自带了uwsgi,把nginx的http协议接洽到python环境中。
flask的后台处理是的用户和网站可以形成交互,交互使得网站变成了一个app,也就是常说的web app。
这样,我们就可以用python来处理网站请求了。