网站架构原理及网站服务搭建
Web 工作原理
客户端和 Web 服务器通过HTTP协议进行通信,HTTP 协议采用请求/响应模式,当客户端发起 HTTP 请求,Web 服务器接收后解析该请求,然后将 HTTP 响应发送会客户端。
Web 网站介绍
Web,全称为 World Wide Web,简称 WWW。它有两层含义:
- Web 是 Internet 中的一种服务。
- Web 是一个巨大的电子信息仓库。
Web 是由彼此关联的文档组成的,这些文档被称为主页或页面。Web 的内容保存在 Web 站点中,用户可以通过浏览器访问 Web 站点,因此 Web 是一种典型的 客户端/服务器 架构(B/S 架构)。
- 客户端:在计算机上运行,并可以访问互联网的应用程序,其可以将用户交互转换为对 Web 服务器的请求。
- 服务器:连接到互联网且具有IP地址的机器,并安装了特殊的服务器软件(如 Web服务器、数据库服务器、应用程序服务器等),来响应客户端请求。
Web 服务器
Web 服务器指的是一个软件程序,比如 Apache、IIS、Nginx、Tomcat等。它们的作用就是管理Web应用,当客户端发起HTTP请求时,服务器接收到之后调用相应的Web应用处理请求,并将响应结果返回给客户端。
数据库服务器
数据库服务器是提供给程序或计算机连接到数据库的一种客户端/服务器模型的计算机程序。数据库服务器一般由计算机和数据库管理软件构成。
数据库类型包括关系型和非关系型。
- 关系型:采用关系模型组织数据的数据库,以行和列形式存储数据。比如 Oracle、DB2、SQL Server、MySQL等
- 非关系型:NoSQL,泛指非关系型数据库。常见的有 Redis、MongoDB等
关系型数据库:
优势 | 劣势 |
---|---|
易于维护 | 读写性能差,尤其面对海量数据时 |
使用方便 | 固定的表结构,灵活度较差 |
支持复杂操作 | 高并发读写需求使硬盘的I/O受到挑战 |
事务支持使得对于安全性能搞得数据访问要求得以实现 | |
数据更新开销很小 |
非关系型数据库:
优势 | 劣势 |
---|---|
格式灵活,应用场景广泛 | 不提供关系型数据库对事务的处理 |
速度快 | |
高扩展性 | |
成本低 | |
易于数据的分散 |
网站搭建
网站搭建前端:HTML+CSS+JS
常见后端语言:PHP、Python、ASP、JSP、C# 等
在一台服务器上搭建多个网站的方法有以下几个:
- 基于IP地址
一个 IP 对应一个网站,目前很少了,因为 IP 成本很高。
- 基于IP地址 + 路径
一个 IP下有若干文件目录,浏览时访问指定路径即可,如 http://ip/paths
- 基于IP地址 + 端口号
利用不同端口号来识别不同网站,如http://ip:port
- 基于主机名
使用不同域名来区分不同网站,所有的域名解析都指向同一个IP,服务器通过HTTP头中的 host 参数判断用户要访问哪一个网站。多个网站在一台服务器上时大多使用该方法。
网站搭建实战
网站环境为 LAMP,其中Linux环境直接用 Kali,因为Kali自带了Apache、MySQL和PHP环境,省了好多环境架设时间。
L:操作系统为 Linux
A:中间件为 Apache
M:数据库为 MySQL
P:后端语言为 PHP
静态页面安装
静态页面只需要先保证开启apache服务,然后将页面文件放到\var\www\html
目录中即可。
# 开启apache服务
systemctl start apache2.service
# 查看apache服务状态
systemctl status apache2.service
# 重启apache服务
systemctl restart apache2.service
# 关闭apache服务
systemctl stop apache2.service
首先启动apache服务:
然后新建一个页面文件,接着访问该文件即可:
动态页面安装
在动态页面安装中需要先启动apache服务和MySQL服务。由于前者已经在静态页面安装中已经启动,因此现在只需要启动MySQL服务:
可以通过netstat -ant
命令查看端口使用情况,其中-a
表示列出所有会话,-n
表示不解析域名,-t
表示列出TCP会话。结果如下:
然后,我们再对MySQL服务进行一些配置,修改其连接密码为 root:
最后,重启 MySQL服务,我们的初始配置到此为止。
基于 IP 地址+路径
这一种安装方式只需要直接将网站源码拷到/var/www/html
目录下即可,在本环节中我们安装pikachu靶机来实现。
首先下载好靶机源码,直接将它拷贝至指定目录。此时直接基于IP地址+路径去访问,即可访问到:
基于 IP 地址+端口
需要进行两步设置:
- 配置apache服务的监听端口。配置监听端口的文件为
/etc/apache2/ports.conf
,进到文件中可以看到默认监听80和443端口。如果想增加监听端口,则需要修改文件,在此我们添加8081端口:
- 配置了监听端口之后,要配置端口和网站目录的对应关系。配置对应关系的文件为
/etc/apache2/sites-available/000-default.conf
。在这个文件中,我们为刚刚添加的8081端口对应上pikachu靶场:
将apache服务器重启,利用基于IP地址+端口方式访问,访问成功:
基于主机名
需要公网服务器,然后绑定域名。在此就不搞了。
第三方工具搭建网站
相比于手动建站,利用第三方工具能更方便地搭建环境,且切换环境版本更加便捷。
常见的第三方搭建工具:
- Phpstudy
- 宝塔