httpd的安装并分别实现三种工作模式、request报文请求的简述、httpd的虚拟机、站点访问控制、用户访问控制、持久连接配置

系统版本 Centos 7

安装httpd 2.4

1、编译安装:

2、yum仓库安装

程序环境配置文件;

httpd主配置文件。
  • /etc/httpd/conf/httpd.conf
自建配置文件。

在不修改主配置文件的情况下新增一个配置文件。

  • /etc/httpd/conf.d/*.conf
Systemd 服务配置文件。
  • /usr/lib/systemd/system/httpd.service
主程序文件:
  • /usr/sbin/httpd httpd-2.4支持的MPM的动态切换;
日志文件:
  • /var/log/httpd;
    • access_log; 访问日志
    • error_log; 错误日志
站点文档
  • /var/www/html ; 即帮助文件
模块文件路径
  • /uar/lib64/httpd/modules
服务控制命令:
  • systemctl enable | disable httpd.service 是否自动启动
  • systemctl { start | stop | restart | status } httpd.service 服务是否 开启、停止、重启、状态

多处理模块(MPM)

  • prefork:多进程模型,一个进程响应一个请求;
  • worker:多进程多线程模型,一个线程响应一个请求;
  • event:事件驱动模型,一个进程响应n个请求;
分别启用prefork、worker、event工作方式

默认开启的状态是prefork,一旦启动/etc/sysconfig/httpd里的worker、event模式便自动切换.

1、开启worker模式

2、开启event模式

3、开启prefork模式

错误修复办法:AH00558:


系统版本 Centos 6.7

安装httpd 2.2

1、编译安装:

2、yum仓库安装

程序环境配置文件;

配置文件:

  • /etc/httpd/conf/httpd.conf
  • /etc/httpd/conf.d/*.conf

服务脚本

  • /etc/rc.d/init.d/httpd
  • /etc/sysconfig/httpd 脚本配置文件

主程序文件:

  • /usr/sbin/httpd
  • /usr/sbin/httpd.worker
  • /usr/sbin/httpd.event

日志文件:

  • /var/log/httpd;
    • access_log; 访问日志
    • error_log; 错误日志

站点文档:

  • /var/www/html

模块文件路径:

  • /usr/lib64/httpd/modules

服务启动

  • chkconfig httpd on | off

服务控制

  • service { start | stop | restart | status | configterst | reload } httpd

多处理模块(MPM)

  • prefork:多进程模型,一个进程响应一个请求;
  • worker:多进程多线程模型,一个线程响应一个请求;
  • event:事件驱动模型,一个进程响应n个请求;
分别启用prefork、worker、event工作方式

默认开启的状态是prefork,一旦启动/etc/sysconfig/httpd里的worker、event模式便自动切换.

1、开启worker模式

2、开启event模式

3、开启prefork模式


简述request

request对象是http事物中用于客户端发出获取数据请求,在获取数据后返回至客户端;

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:需要输入账号和密码r认证方能访问资源:Unauthorized
  • 403:请求被禁止;Forbidden
  • 404:服务器无法找到客户端请求的资源:Not Found
  • 500:服务器内部错误;Internal Server Error
  • 502:代理服务器从后端服务器收到一条伪响应;Bad Gateway

httpd 虚拟机

httpd虚拟机是将多个网站运行到一台服务器上,。

实现的三种方案:
  • 基于ip:虚拟主机至少拥有一个独立的ip地址;
    • IP相同;但端口不同;
  • 基于port:虚拟主机至少拥有一个独立的port;
    • IP不同;但端口均为默认端口;
  • 基于FQDN:虚拟主机至少拥有一个FQDN:
    • 请求报文首部不同;

注意:

  • httpd-2.2 虚拟主机不可与中心主机混用;使用前要先禁用’main’主机;注释掉中心主机的DocumentRoot指令即可;
  • httpd-2.4 配置即可使用。

虚拟主机的配置方法:

CentOS 7 虚拟机:

关闭防火墙和SELinux

IP不同

配置两台虚拟机:

  • 虚拟机A
  • 虚拟机B

1、首先创建abc,xyz网站文件目录

2、确定电脑有两个ip

3、配置A、B主配置服务文件

4、验证语法错误:

5、浏览器分别访问

A、192.168.199.175

B、192.168.199.185

注意如果提示错误检查是否关闭了SELinux 和防火墙。

端口不同

1、修改B主机的ip 及添加端口

2、访问测试

192.168.199.175

192.168.199.175:8090

主机名不同

修改A 配置文件:

修改B 配置文件:

测试: 由于没有做DNS解析访问可以修改本机的hosts文件

浏览器输入

www.abc.io

www.xyz.io


CentOS 6 有时间弄

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

NameVirtualHost IP:PORT


其他命令使用格式:


安装httpd

1、修改站点目录

1、创建目录及测试文件。

2、修改配置文件的默认目录并赋权给目录

3、重启服务浏览器测试

网页 image

2、IP站点授权访问

1、全部连接授权管理

2、限制固定IP、网段访问,多个地址可用空格分开。

3、仅允许IP、网段访问

4、限制用户访问

5、仅允许用户访问

Options :定义访问特性

  • Indexes:允许索引,指明的URL路径不存在或没有与主页面资源相匹配的文件时,返回给用户索引列表。
  • FollowSymLinks:允许跟踪符号链接文件所指向的源文件。
  • None:禁止访问
  • All:启用除了MultiViews所有选项
定义格式:

1、允许索引,允许跟踪符号链接文件

浏览器访问:IP/images 或 IP/fstab.html查看效果

2、禁止访问设置

定义站点主页面:默认资源优先访问

  • DirectoryIndex 具有最高优先级;
  • index.html 次级优先级;
  • index.html.var 当以上两者不纯在时;

定义路径别名

测试

1、进入浏览器打开IP/images,测试;

2、屏蔽别名打开浏览器IP/images,测试;

参考:马哥笔记 网络资料

基于用户的访问控制

1 、用户密码访问控制

2、用户组访问控制:

htpasswd 账户密码文件生成工具

语法: htpasswd [options] /PATH/TO/HTTPD_PASSWD_FILE usernamed passwd

常用命令:

  • -c:仅首次创建此处指定的文件,当文件存在时则会清空文件。
  • -m: md5格式加密;
  • -s:格式加密;
  • -D: 删除指定用户
  • -b: 批模式添加用户

批模式添加用户: htpasswd -b [options] /PATH/TO/HTTPD_PASSWD_FILE username passwd

定义服务配置文件:

  • /etc/http/conf/
  • /etc/httpd/conf.d/

组账号进行认证: (1) 定义安全区域:

(2) 创建用户账号和组账号文件; 组文件:每一行定义一个组 GRP_NAME: username1 username2 …


持久连接配置

测试链接:

参考资料:马哥笔记

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

发表评论

登录后才能评论

This site uses Akismet to reduce spam. Learn how your comment data is processed.

联系我们

400-080-6560

在线咨询

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

QR code