WEB
服务器的部署及优化
1.
用户常用关于
web
的信息
1.1.
什么是
www
www
是
world wide web
的缩写,及万维网,也就是全球信息广播的意思
通常说的上网就是使用
www
来查询用户所需要的信息。
www
可以结合文字、图形、影像以及声音等多媒体,超链接的方式将信息以
Internet
传递到世界各
处去。
当你连接
www
网站,该网站会提供一些数据,客户端要使用可以解析这些数据的软件来处理,那就
是浏览器
1.2.
网址
URI
:
Uniform Resource Identifier
统一资源标识,分为
URL
和
URN
URN:Uniform Resource Naming
,统一资源命名,
P2P
下载使用的磁力链接是
URN
的一种实现
URL
:
Uniform Resorce Locator
,统一资源定位符用于描述某服务器某特定资源位置
两者区别:而
URL
提供查找该事物的方法。
URN
仅用于命名,而不指定地址
1.3.URL
组成
URL
组成机构如下:
<scheme>://<user>:<password>@<host>:<port>/<path>:<params>?<query>#<frag>
2.HTTP
简介
2.1.
什么是
http
HTTP
协议:全称为
Hyper Text Transfer Protocol
(超文本传输协议)
简单来说
http
就是从服务器传输超文本(
html
)到本地浏览器的传输协议
HTTP
协议工作于
B/S
架构上,浏览器作为
HTTP
客户端通过
URL
向
HTTP
服务端即
WEB
服务端发送请
求(
Request
)
Web
服务端根据接收到的请求数据后,向客户端发送响应信息(
Response
)
https://developer.mozilla.org/zh-CN/docs/Web
2.2.http
工作机制
一次
http
事务包括
:
http
请求
:http request
http
响应
: http response
Web
资源
: web resource
一个网页由多个资源
(
文件
)
构成,打开一个页面,通常会有多个资源展示出来,但是每个资源都要单独请
求。因此,一个
"Web
页面
”
通常并不是单个资源,而是一组资源的集合
资源类型
:
静态文件
:
无需服务端做出额外处理
,
服务器端和客户端的文件内容相同
常见文件后缀
:.html,.txt,.jpg,.js,.css,mp3,avi
动态文件
:
服务端执行程序,返回执行的结果
,
服务器端和客户端的文件内容不相同
常见文件后缀
:.php,jsp,asp
2.2.1.web
中常用的语言介绍
html
语言 超文本标记语言
css
层叠样式表 表述网站的风格
js
实现
html
和
css
实现不了的功能比如动画效果
2.2.2.mine
(
Multipurpose Internet Mail Extensions
)多用途因特网邮件扩展
它设计的最初目的是为了在发送电子邮件时附加多媒体数据,让邮件客户程序能根据其类型进行处
理
为了支持多媒体数据类型,
HTTP
协议中就使用了附加在文档之前的
MIME
数据类型信息来标识数据
类型。
其主要功能是让服务器将它们发送的多媒体数据的类型告诉浏览器
服务器将
MIME
标志符放入传送的数据中来告诉浏览器使用哪种插件读取相关文件
MIME
类型存在于
HTTP
响应报文的响应头部信息里,它是一种文本标记
MIME
格式:
type/subtype
文件类型后缀(
html txt jpg png... ...
)
2.3.http
访问请求完整过程

1.
建立连接:
TCP
的
3
次握手建立链接,向服务器发送
http
请求,服务器拒绝或允许
2.
接受请求

接受客户端请求报文对某个资源的一次请求过程
web
响应访问模型
a.
单进程
I/O
模型:启动一个进程处理用户请求,而且一次只处理一个,多个请求被串行响应
b.
多进程
I/O
模型
:
并行启动多个进程
,
每个进程响应一个连接请求
c.
复用
I/O
结构
:
启动一个进程,同时响应
N
个连接请求
d.
复用的多进程
I/O
模型
:
启动
M
个进程,每个进程响应
N
个连接请求,同时接收
M*N
个请求
3.
处理请求:
服务器对请求报文进行解析,并获取请求的资源及请求方法等相关信息,根据方法,资源,首部和可选
的主体部分对请求进行处理常用请求
Method: GET
、
POST
、
HEAD
、
PUT
、
DELETE
、
TRACE
、
OPTIONS
4.
访问资源
:
服务器获取请求报文中请求的资源
web
服务器,即存放了
web
资源的服务器,负责向请求者提供对方请求
的静态资源,或动态运行后生成的资源
5.
构建响应报文
:
一旦
Web
服务器识别除了资源,就执行请求方法中描述的动作,并返回响应报文。响应报文中包含有响
应状态码、响应首部,如果生成了响应主体的话,还包括响应主体
响应实体
:
如果事务处理产生了响应主体,就将内容放在响应报文中回送过去。响应报文中通常包括
:
描述了响应主体
MIME
类型的
Content-Type
首部
描述了响应主体长度的
Content-Length
实际报文的主体内容
2)URL
重定向
:web
服务构建的响应并非客户端请求的资源,而是资源另外一个访问路径
3)MIME
类型
:Web
服务器要负责确定响应主体的
MIME
类型。多种配置服务器的方法可将
MIME
类型
与资源管理起来
6
发送响应报文
Web
服务器通过连接发送数据时也会面临与接收数据一样的问题。服务器可能有很多条到各个客户端的
连接,有些是空闲的,有些在向服务器发送数据,还有一些在向客户端回送响应数据。服务器要记录连
接的状态,还要特别注意对持久连接的处理。对非持久连接而言,服务器应该在发送了整条报文之后,
关闭自己这一端的连接。对持久连接来说,连接可能仍保持打开状态,在这种情况下,服务器要正确地
计算
Content-Length
首部,不然客户端就无法知道响应什么时候结束
2.4.http
协议报文头部结构
2.4.1.
请求报文
方法
描述

求情报文由三部分组成即:开始行、首部行、是体主体
开始行:请求方法
url
版本
CRLF
首部行通常用键值表示
空格
实体主题数据,一般在
post
动作中可以提看到
开始行中的请求方法:

2.4.2.响应报文

求情报文由三部分组成即:开始行、首部行、是体主体
开始行:
http版本 状态码 短语
CRLF
首部行通常用键值表示
空格
实体主题数据,即获取内容
2.5.
状态代码
状态码由三位数字组成,第一个数字定义了响应的类别,且有五种可能取值


3.web
服务的配置详解
3.1.web
服务的常用种类
Apache
Nginx
openresty
大厂自研
3.2.Nginx
的安装
开源版本的
Nginx
官网:
http://nginx.org
Nginx
在安装的过程中可以选择源码安装也可以选择使用软件包安装
源码安装下载相应的源码压缩包解压后编译完成安装
软件安装包可以使用
rpm
或者
apt
命令进行安装,也可以使用
dnf
通过软件仓库安装
以软件仓库安装为例:
配置软件仓库
创建目录并挂载光驱

设置开机自启:

配置软件仓库文件:

安装Nginx:

关闭selinux和防火墙:



启动服务:

在浏览器中输入此计算机的IP地址,即可判断nginx服务是否生效

修改网页内容:
方法一:
修改/etc/usr/share/nginx/index.html/中的内容:我将Never give up 这句话放入其中,可以发现进入网页后,此网页的信息变成了我想要展现的内容

方法2
在/usr/share/nginx/html/增加一个/html目录在目录中写入 /html/lee.html,/etc/nginx/nginx.conf文件里将42行注释掉,在第43行写入 root /html;内容,输入nginx -t查看命令是否修改正确,在输入nginx -s reload,重启nginx服务在网页输入本机ip192.168.94.200可以看到网页内容被修改了
web服务器的访问控制
在/usr/share/nginx/html/增加一个admin,将admin page内容输入进admin/index.html,下载httpd-tools服务。


3.6.web服务器的数据加密(https)
3.6.1.https简介
HTTP
协议以明文方式发送内容,不提供任何方式的数据加密,
HTTP
协议不适合传输一些敏感信息,比如信用卡号、密码等
为了解决
HTTP
协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议
HTTPS
。
HTTPS
全称:
Hyper Text Transfer Protocol over Secure Socket Layer
),是以安全为目标的
HTTP
通道
HTTPS
并不是一个新协议,而是
HTTP+SSL
(
TLS
)
原本
HTTP
先和
TCP
直接通信,而加了
SSL
后,就变成
HTTP
先和
SSL
通信,再由
SSL
和
TCP
通信相当于
SSL
被嵌在了
HTTP
和
TCP
之间
Note
SSL
是
“Secure Sockets Layer”
的缩写,中文叫做
“
安全套接层
”
。它是在上世纪
90
年代中期,由网景
公司设计的。到了
1999
年,
SSL
应用广泛,已经成为互联网上的事实标准。
IETF
就把
SSL
标准化。
标准化之后
SSL
被改为
TLS
(
Transport Layer Security
传输层安全协议)
3.6.2.https握手流程
3.6.3.部署https
1.
生成密钥


Caution
我们生成的证书需要通过
CA
机构认证才能投入生产环境中
CA
就是一个公认的公证单位,你可以自行产生一把密钥且制作出必要的证书数据并向
CA
单位注册,
那么当客户端的浏览器在浏览时,该浏览器会主动向
CA
单位确认该证书是否为合法注册过,如果
是,那么该次连接才会建立,如果不是,浏览器会发出警告信息,告知用户应避免建立连接
生成的证书和密钥:

2.配置nginx开启https


Warning
当开启
https
后客户一般情况下不会在浏览器中特别添加
https
去访问,
我们需要强制客户在访问某些站点时使用加密
3.强制访问加密
利用从定向的办法来强制客户使用加密访问方式

Note
^/(.*)$
这时正则表达式语法表示匹配浏览器地址栏中的所有内容
$1
login.easylee.org/xxx
这个地址转换时保留
xxx
permanent
表示永久转换
301