概念
互联网:是网络的网络,是所有类型网络的母集
因特网:世界上最大的互联网网络
万维网:www (不是网络,而是数据库)是网页与网页之间的跳转关系
URL:万维网使用统一资源定位符,描述了一个资源在服务器上的具体位置
/var/www/html 描述了login.html的所在位置
例:192.168.91.100 / /是表示httpd软件的根,而不是91.100的根!!!
http:超文本传输协议,可以传输图片,视频,小程序。能实现此协议的有:apache,nginx,tomcat。
浏览器的访问过程
http协议
MIME
如果在/etc/mime.types里面,则显示出来,如果不在此文件里面,则下载出来
URI(i):统一资源标识,分别为URN、URL
URN: 统一资源命名,这个可以通过多个服务器下载,因为只要知道名字,哪台电脑都能下载
URL: 统一资源定位符,用于描述某服务器的具体位置,只能通过一台服务器下载
两者之间,是URN比URL的速度快
URL的标准格式: 协议://(用户名:密码)基本省略 @主机名(www.jd.com:80端口号一般不写,默认80)/文件位置(192.168.91.100/a.jpg 表示描述访问这个主机的a的位置)?:表示查询
网站访问量
IP(独立ip):点击一次,统计一次
pv(点击量、访问量):页面浏览量,访问量 。用的最多
uv:独立访客
http请求访问的完整过程
http的工作机制
静态资源与动态资源分开放,分为两个文件夹
提高http连接性能
在接收请求中:
补充:长连接也称为持久连接,表示一次三次握手,下载多个资源,三次握手只要连上,就不断开了。
http协议版本
http 0.9 只有下载get,博客 qq都写不了
http 1.0 有上传也有下载,但是不支持长连接
http 1.1 有上传也有下载,支持长连接
httpd安装
yum安装的主配置文件在这,如果是编译安装,则主配置文件在自己设置的路径里面
http协议及报文头部结构
http请求报文
方法:get put ...一般是get
URL:文件路径
版本:http0.9 http1.0 http1.1
例如使用telnet远程连接
这边的host属于头部信息,可以不加
随后回车两遍
回车之后,可以看出test被下载出来
响应报文
状态码
举例说明:301
先进入配置文件中
访问192.168.91.101/test 就直接跳转到百度页面
打开网页,输入192.168.91.101/test 会直接出现百度
接着关闭nginx
再次输入192.168.91.101/test
还是会 出现百度页面,因为301是永久重定向
如果改成302
当 关闭nginx时,则不会出现百度页面,因为302是临时重定向
504:网关超时,因为处理时间过长,构建影响报文时间过长(因为客户寻求动态资源,nginx没有动态资源,因此要向java,php去要,这个过长耗时)
面试题:如果网页访问不成功该如何处理?
1.先看状态码,看客户端还是服务端的问题 2.再看日志
apache
apache的功能:
无论是apache 还是nginx 对动态资源都不友好
apache的工作模式
prefork
worker
event:事件驱动模型,centos8默认模型,会主动开启监听线程
MPM模式:修改工作模式
yum安装的httpd默认为prefork模式,如果要修改模式,可以通过mpm去修改
第二步,去修改此文件
可以看出,原本是prefork
prefork没有线程,只会开一个一个进程
如果要改成event,则将上面prefork注释掉
再进行查看pstree-p
httpd软件
子配置文件
或者通过在主配置文件里面利用grep -i include找到子配置文件 子配置优先级高
站点网页文档目录
打开另外一个终端,curl 192.168.68.3 就等于访问此IP地址下面 /var/www/html/index.html 这个地址
因为配置文件中写了
如果在客户端,没有写你要访问的文件,则默认访问index.html
http -t 检查语法错误
在配置文件中修改
修改成 功
修改配置文件
修改配置文件,为了安全起见,要先做备份
1 监听地址
listen port 80
可以监听多个地址
例如
在另外一台服务器上面,curl一下 curl 192.168.68.3:80 192.168.68.3:9527
建立一个虚拟IP地址,也可以监听到
查看listen配置
在另一终端curl 192.168.68.111 还是可以访问的
或者将监听地址写入子配置文件中 以conf.d结尾的文件
将原本在主配置文件中的 listen 9527关闭 然后重新加载httpd文件
在另外一个终端测试一下,9527是否能访问,拒绝连接
随后,进入子配置文件中修改
在进入另外一个终端,curl192.168.68.3:9527
总结:在主配置文件中无法监听的端口号,也可以在自配置文件中添加,然后进行监听
查看主配置文件里面的重要内容
随后在网页上输入ip+端口号
2. 隐藏服务器版本信息
另一个终端访问自己时是可以看见版本
在子配置文件中修改
先写一个子配置文件 vim /etc/httpd/conf.d/test.conf
随后,在进入另外终端curl一下自己
持久连接
第一步在子配置文件中去修改内容
KeepAlive On
KeepAliveTimeout 100
MaxKeepAliveRequests 2第二步 修改文自配置文件,重启
第三步在自己的服务端去创建3个文件
建立T T1 T2 三个文件
第四步 随后在另外一个终端去测试,先去下载telnet,去当做长连接
1 2 3 中间空格2次
DOS加载动态模块设置
找到basic这模块,进行注释
worker跟event模式的相关配置
指定开启进程数
此时系统开启5个进程
想要指定10个进程,则在主配置文件(子配置文件也可以)增加 startservices 10
定义Main server文档页面路径
默认的站点目录在/var/www/html 如果想修改
需要再主配置文件中修改指明路径 +授权!
随后重启
建立新的路径,并且给新路径写入文件
随后,在另外一个服务器去curl一下,成功
别名 alias
同样要建立新路径,修改原路径,修改权限
在子配置文件中修改
如果没修改之前,test的位置在/var/www/中
两者相同,访问192.168.68.100的test就等于访问192.168.68.100的/opt/blog
然后在第二台主机上面curl,成功 test格式一定要注意
定义站点默认主页面文件
刚刚我们访问的是test,假设test下没有index..html文件
刚刚alias实验中,test的路径在/opt/blog中
所有再次切换里面,将index.html删除
进入网页,去访问一下test,出现forbidden是因为没有index.html文件
紧接着,再拷贝点文件进入blog中
进入子配置文件中去修改文件内容
最后检查并重启
然后去网页访问192.168.68.3/test
默认没有允许软连接
如果要添加软连接,还是在配置文件中修改
虚拟主机
官方文档在/usr/share/doc/下
用于最多的就是域名
第一步,建立虚拟网卡
第二步进入子配置文件中修改(因为主配置文件内容太多,子配置文件清晰可见)
修改权限
修改主机配置
保存后退出
然后去opt目录下建立html文件夹,再建立3/111的文件
弄好之后,在检查一下
最后,重启
在另外一台终端去测试
如果要是用端口号(IP地址一样,端口号不同)实验,其他步骤一样,只是在配置文件中 IP地址后面加上端口号
先打开监听端口号
再另外一个终端测试,成功
使用域名
在配置文件中修改,就将域名修改一下即可,其他操作一样
随后重启
切换到第二台服务器,因为是域名,所以还要写一个域名解析
随后curl一下
基于客户端IP地址实现访问控制
黑名单
白名单
黑名单举例说明
首先在子配置文件中修改
保存退出后,建立/mnt/html ,并且写入内容
随后在另外一台终端查看,是可以成功的
让192.168.68.1的主机去访问192.168.68.3/test/ 会被拒绝 所以成功
curl命令
压力测试工具