追梦之路第十周修炼

httpd配置

追梦之路第十周修炼samuel-scrimshaw-361567-unsplash

1、Centos7系统下实现httpd-2.2的安装,并分别实现prefork、worker、event等几种工作方式

注:centos7系统下实现httpd-2.2的安装需要编译安装,centos7系统自动安装2.4版本,以下演示2.4版本。

实现prefork模式

两级进程模型,父进程管理子进程,每个子进程响应一个请求;可靠性,兼容性强,多进程,一个进程处理一个请求。

实现worker模式

三级模型,父进程管理子进程,子进程通过线程响应用户请求;更高伸缩性的线程,多线程,一个线程处理一个请求。

实现event模式

两级模型,父进程管理子进程,子进程通过event-driven机制直接响应n个请求;多线程,每个线程处理一次请求,基于事件驱动机制。

​ 在centos6-2.2版本中,MPM的装载需要使用模块加载,及在其配置文件中创建.conf结尾的模块来启动模式。

2、简述request报文请求方法和状态响应码

报文语法格式:

语法解释:

1).method: 请求方法

  • GET: 从服务器获取一个资源;
  • HEAD: 只从服务器获取文档的响应首部;
  • POST: 向服务器发送要处理的数据;
  • PUT: 将请求的主题部分存储在服务器上;
  • DELETE: 请求删除服务器上指定的资源;
  • TRACE: 追踪请求到达服务器中间经过的代理服务器;
  • OPTIONS: 请求服务器返回对指定资源支持使用的请求方法;

2). 协议查看或分析的工具:(一般用浏览器代替)

tcpdump,tshark,wireshark

3). status(状态码):

  • 1xx:100-101,信息提示
  • 2xx:200-206,成功
  • 3xx:300-305,重定向
  • 4xx:400-415,错误类信息,客户端错误
  • 5xx:500-505,错误类信息,服务器端错误

常用的状态码:

  • 200:成功,请求的所有数据通过响应报文的entity-body部分发送;OK
  • 301:请求的URL指向的资源已经被删除;但在响应报文中通过首部Location指明了资源现在所 在的新位置;Moved Permanently
  • 302:与301相似,但在响应报文中通过Location指明资源现在所处临时新位置;Found
  • 304:客户端发出了条件式请求,但服务器上的资源未曾发生改变,则通过响应此响应状态码通知客户端;Not Modified
  • 401:需要输入账号和密码认证方能访问资源:Unauthorized
  • 403:请求被禁止;Forbidden
  • 404:服务器无法找到客户端请求的资源;Not Found
  • 500:服务器内部错误;Internal Server Error
  • 502:代理服务器从后端服务器收到了一条伪响应;Bad Gateway

4). hearders

格式: Name : Value

首部报文有五类:通用首部,请求首部,响应首部,实体首部,扩展首部

 

3、详细描述httpd虚拟主机、站点访问控制、基于用户的访问控制、持久链接等应用配置实例

$$ -1 httpd虚拟主机,站点访问控制配置实例

实现:

  1. 不同ip地址访问同一服务器展示的页面不同

    2.同一ip地址不同端口访问同一服务器展示的页面不同

    3.相同ip和端口,不同主机名访问同一服务器展示的页面不同

条件

两个ip:192.168.10.100 192.168.10.110

两个主机名:www.ilinux.io www.iunix.io

两个资源路径:/data/web/ilinux /data/web/iunx

前提

在实验条件下,已经将主配置文件中的DocumentRoot修改为/data/web/www目录

实验一:不同ip地址访问同一服务器展示的页面不同

到此两个虚拟主机的访问资源,和ip地址都已经准备好了,接下来就是设置配置文件

验证

成功!

 

实验二:同一ip地址不同端口访问同一服务器展示的页面不同

依据上述实验的配置,只需要将第二个或其中任意一个ip的配置文件中的ip地址更改为相同的ip不同的端口即可,但也需要开启的端口处于监听状态

同一ip地址不同端口访问同一主机的不同页面成功!

 

实验三:相同ip和端口,不同主机名访问同一服务器展示的页面不同

依据上述设置,要达到此效果只需要将ip和端口修改相同,并在DNS服务器上添加设置主机名与ip地址的对应关系,让两个不同的主机名访问时都解析到同一个服务器上。这里演示我只修改本地的hosts文件实现功能

成功!

$$-2 基于持久连接的访问控制配置实例

持久连接的实现意义:依据TCP/IP协议,要实现网络连接需要经过三次握手,断开连接也需要四次断开,假设需要进行传输文件时使用此协议,则传送一次文件后就会断开连接,而后再次3次握手建立一次连接进行下一次文件传输,而我对同一个服务器进行多次文件传输时,就要不断的进行三次握手四次断开,这个过程大大减缓了文件传输速度,我要想资源获取完后连接不断开,直到整个获取过程完成,就需要配置保存连接。

而这种持久连接不知没有限制的,从两个方面控制,一是从限制持久连接时间,二是限制持久连接过程传输数据的数量。

方法:新建.conf结尾的配置文件,配置如下内容:

示例:开启持久连接,最大连接时间20秒,连接过程中超过100个数据传输量即断开连接

$$-3 基于用户的访问控制配置实例

在web服务器被访问时,一些特殊内容不予许被随意访问,但可以通过在网页登陆认证的方式访问。

认证方式有两种

(1).basic 明文方式

(2).digest 消息摘要认证方式

basic认证的配置实例:

以.conf结尾的配置文件实现此功能

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/117171

评论列表(0条)

  • 马哥教育
    马哥教育 2018-09-19 09:10

    很实用的一篇博文,基本涵盖web服务的基础知识,很棒。继续加油。

    • zhuimenshaonian
      zhuimenshaonian 回复 马哥教育 2018-09-23 02:37

      感谢老师评价,日后注意代码块格式问题!

联系我们

400-080-6560

在线咨询

工作时间:周一至周五,9:30-18:30,节假日同时也值班

QR code