第十周作业

1、Centos7系统下实现httpd-2.2的安装,并分别实现prefork、worker、event等几种工作方式
2、简述request报文请求方法和状态响应码
3、详细描述httpd虚拟主机、站点访问控制、基于用户的访问控制、持久链接等应用配置实例

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

yum –y install “Development Tools”

  1. 下载源码的httpd-2.2.8
  2. 编译安装httpd-2.2.8
    • 切换到httpd-2.2.8目录
    • ./configure –prefix=/usr/local/httpd
    • Make
    • Make install
  3. 创建启动文件
  • 在/etc/rc.d/init.d/
  • ln /usr/local/httpd/bin/apachectl httpd
  • vi httpd ## 添加#chkconfig: 345 90 10
  • chkconfig –add httpd
  • 用systemctl start httpd.service测试
    1. 添加命令到环境变量

PATH=$PATH:/usr/local/httpd/bin

Prefork模型的httpd安装成功

  1. 分别编译安装其他模型的httpd

./configure  –prefix=/usr/local/httpd.work  –with-mpm=worker

./configure  –prefix=/usr/local/httpd.event  –with-mpm=event

然后用不同的启动命令启动httpd

 

 

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

method(方法):

GET:从服务器获取一个资源;

HEAD:只从服务器获取文档的响应首部;

POST:向服务器发送要处理的数据;

PUT:将请求的主题部分存储在服务器上;

DELETE:请求删除服务器上指定的资源;

TRACE:追踪请求到达服务器中间经过的代理服务器;

OPTIONS:请求服务器返回对指定资源支持使用的请求方法;

 

协议查看或分析的工具:

tcpdump,tshark,wireshark

 

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

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

虚拟主机

站点标识:socket

IP相同,但端口不同

IP不同,但端口均为默认端口;

FQDN不同;

请求报文中首部

Host:www.mageedu.com

 

报文首部

方法  URL HTTP版本

GET www.magedu.com httpd1.1

 

有三种实现方案:

基于ip:

为每个虚拟主机准备至少一个ip地址;

基于port:

为每个虚拟主机使用至少一个独立的port;

基于FQND:

为每个虚拟主机使用至少一个FQDN;

 

注意(专用于httpd-2.2):一般虚拟机不要与中心主机混用;因此,要使用虚拟主机,得先禁用main主机;

禁用方法:注释中心主机的DocumentRoot指令即可;

 

虚拟主机的配置方法:

<VirtualHost IP:PORT>

ServerName FQDN

DocumentRoot “”

</VirtualHost>

 

其他可用指令:

ServerAlias:虚拟主机的别名;可多次使用;

ErrorLog:

CustomLog:

<Directory>

</Directory

Alias

….

 

<VirtualHost 172.16.0.67:80>

ServerName www.magedu.com

DocumentRoot “/data/web/magedu”

<Directory “/data/web/magedu”>

Oprions None

AllowOverride None

Require all granted

</Directory>

CustomLog “logs/magedu_access” combined

</VirtualHost>

 

 

基于IP的虚拟主机示例:

 

<VirtualHost 172.16.0.67:80>

ServerName www.magedu.com

DocumentRoot “/data/web/magedu”

</VirtualHost>

 

<VirtualHost 172.16.0.68:80>

ServerName www.niaogedu.com

DocumentRoot “/data/web/niaoge”

</VirtualHost>

 

基于端口的虚拟主机:

<VirtualHost 172.16.0.67:80>

ServerName www.magedu.com

DocumentRoot “/data/web/magedu”

</VirtualHost>

<VirtualHost 172.16.0.68:8080>

ServerName www.niaogedu.com

DocumentRoot “/data/web/niaoge”

</VirtualHost>

 

基于FQDN的虚拟主机

 

<VirtualHost 172.16.0.68:80>

ServerName www.niaogedu.com

DocumentRoot “/www/niaogedu/htdocs”

</VirtualHost>

 

<VirtualHost 172.16.0.68:80>

ServerName www.magedu.com

DocumentRoot “/www/magedu/htdocs”

</VirtualHost>

 

 

注意:如果时httpd-2.2,则使用基于FQDN的虚拟主机时,需要事先使用如下指令:

NameVirtualHost IP:PORT

 

 

  1. 站点访问控制,基于用户的访问控制

基于IP的访问控制
允许所有主机访问:Require all granted
拒绝所有主机访问:Require all deny

控制特定的IP访问
Require ip ipaddr  授权指定来源的IP访问;
Require not ip ipaddr  拒绝;

控制特定的主机访问
Require host HOSTNAME 授权指定来源的主机访问;
REquire not host HOSTNAME 拒绝;

HOSTNAME:
FQDN:特定主机
domin.tld:指定与名下的所有主机

<RequireAll>
Require all granted
Require not ip 172.20
</Require>

基于用户认证方式有两种:

basic:明文

digest:消息摘要认证

 

安全域:要求用户认证后方能访问的路径;应该通过名称对其进行标识,以便于告知用户认证的原因;

 

用户的账号和密码存放于何处?

虚拟账号:仅用于访问某服务时用到的认证标识

 

存储:

文本文件;

SQL数据库;

ldap目录存储;

 

basic认证配置示例:

(1)定义安全域

<Directory “路径”>

OPtions None

AllowOverride None

AuthType Basic

AuthName “String” ##String 认证提示信息….

AuthUserFile “/PATH/TO/HTTPD_user_PASSWD_FILE”

Require user username1 username2 ….

</Directory>

2)提供账号和密码存储(文本文件)

使用专用命令完成此类文件的创建及用户管理

htpasswd [options] /PATH/TO/HTTPD_PASSWD_FILE username

-c:自动创建此处指定的文件,因此,仅应该在此文件不存在时使用;

-m:md5格式加密

-s:sha格式加密

-D:删除指定用户

 

另外:基于组账号进行认证;

 

a.定义安全域

<Directory “”>

OPtions None

AllowOverride None

AuthType Basic

AuthName “Admin Area, Plz enter username and password.”

AuthUserFile “/PATH/TO/HTTPD_user_PASSWD_FILE”

Require group groupname1 groupname2 ….

</Directory>

b.创建用户账号和组账号文件;

 

组文件:每一行定义一个组

GRP_NAME:username1 username2

 

  1. 持久连接

持久连接(保持连接,长连接)

persistent connection:tcp连续建立后,每个资源获取完成后不全断开连接,而是继续等待其他资源请求的进行;

如果断开?

数量限制

时间限制

 

副作用:对并发访问较大的服务器,长连接机制会使得后续某些请求无法得到正常响应;

折中:使用较短的持久连接时长,以及较少的请求数量;

 

配置如下

KeepAlive On|Off

KeepAliveTimeOut 15

MaxKeepAliveRequests 100

 

测试:

telnet WEB_SERVER_IP PORT

GET /URL HTTP/1.1

Host:SERVER_IP

 

注意:

httpd-2.4的KeepAliveTimeout可是毫秒级;

KeepAliveTimeout num[ms]

 

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

(0)
墨武墨武
上一篇 2018-07-14 22:00
下一篇 2018-07-15 01:27

相关推荐

  • Linux运维命令以及概念整理总结(1)

    1、文件系统分层结构: LBS Linux Standard Base
    2、ls命令、wc命令、时间戳、stat、通配符glob
    3、touch、cp、mv、rm、批量改名rename
    4、tree、mkdir、rmdir
    5、节点编号inode以及节点表、硬链接以及软链接
    6、file命令、标准输入,标准输出

    2018-04-14
  • linux 7

    centos启动流程: POST–>BootSquence(BIOS)–>Bootloader(MBR)–>kernel(ramdisk)–>rootfs(switch_root)–>/sbin/init(/etc/inittab,/etc/init/*.conf,/u…

    Linux笔记 2018-08-05
  • 第一周作业

    1、描述计算机的组成及其功能。 计算机由运算器,控制器,存储器,输入设备和输出设备五大部分组成。 (1)运算器的功能是用于完成算术运算、逻辑运算。负责计算机执行的所有数学与逻辑功能。 (2)控制器的功能是主要负责对程序所执行的指令进行分析,并协调计算机各部件进行工作计算机的所有 其他部件。 (3)存储器的功能是用于储存信息的设备,通常是将信息数字化后再利用电…

    Linux笔记 2018-05-11
  • 第一周作业

    1、描述计算机的组成及其功能。
    2、按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。
    3、描述Linux的哲学思想,并按照自己的理解对其进行解释性描述。
    4、说明Linux系统上命令的使用格式;详细介绍ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相应的示例来阐述。
    5、如何在Linux系统上获取命令的帮助信息,请详细列出,并描述man文档的章节是如何划分的。
    6、请罗列Linux发行版的基础目录名称命名法则及功用规定。

    Linux笔记 2018-05-13
  • Linux-文本工具

    文件查看 文件查看命令: cat,tac,rev cat [OPTION]… [FILE]… -E: 显示行结束符$ -n: 对显示出的每一行进行编号 -A:显示所有控制符 -b:非空行编号 -s:压缩连续的空行成一行 tac     行号反转 rev     同行反转   抽取文本的工具 文件内容:less和 cat 文件…

    2018-04-08
  • 三剑客 sed

    三剑客之一

    Linux笔记 2018-08-07