httpd的安装与使用

httpd的安装与使用

httpd的安装与使用

引言

HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。目前使用的主要有HTTP/1.1、HTTP/2.0版本。

HTTP协议的主要特点可概括如下:

1.支持客户/服务器模式。
2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

一次完整的http请求处理过程如下:

(1) 建立或处理连接:接收请求或拒绝请求;
(2) 接收请求:接收来自于网络上的主机请求报文中对某特定资源的一次请求的过程;
(3) 处理请求:对请求报文进行解析,获取客户端请求的资源及请求方法等相关信息; (4) 访问资源:获取请求报文中请求的资源;
(5) 构建响应报文:
(6) 发送响应报文:
(7) 记录日志:

web服务器,即存放了web资源的主机,负责向请求者提供对方请求的静态资源,或动态资源运行生成的结果;这些资源通常应该放置于本地文件系统某路径下;此路径称为DocRoot;实现web服务器的软件有很多,这里仅介绍CentOS6、7自带的httpd2.2、2.4版本软件的安装与使用。

httpd的功能特性有很多,如 CGI:Common Gateway Interface、虚拟主机、反向代理、 负载均衡、路径别名、丰富的用户认证机制、支持第三方模块

下面通过一些实例来展现httpd的安装与使用
1.安装
httpd软件安装可以通过CentOS发行版中自带的rpm包,或通过httpd源码包编译安装。这里使用rpm包安装软件
yum install httpd httpd-tools
安装后可能通过rpm -ql httpd命令来查看都安装哪些文件,CentOS6与7提供的rpm包版本有所不同,安装后的文件也有一些差别。如下:
CentOS 6:httpd-2.2
程序环境:
配置文件:
/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.event
/usr/sbin/httpd.worker
日志文件:
/var/log/httpd:
access_log:访问日志
error_log:错误日志
站点文档:
/var/www/html
模块文件路径:
/usr/lib64/httpd/modules
服务控制和启动:
chkconfig httpd on|off
service {start|stop|restart|status|configtest|reload} httpd

CentOS 7:httpd-2.4
程序环境:
配置文件:
/etc/httpd/conf/httpd.conf
/etc/httpd/conf.d/*.conf
模块相关的配置文件:
/etc/httpd/conf.modules.d/*.conf
主程序文件:
/usr/sbin/httpd
httpd-2.4支持MPM的动态切换;
日志文件:
/var/log/httpd:
access_log:访问日志
error_log:错误日志
站点文档:
/var/www/html
模块文件路径:
/usr/lib64/httpd/modules
服务控制与启动:
systemctl enable|disable httpd.service
systemctl {start|stop|restart|status} httpd.service

2.配置文件
主配置文件在/etc/httpd/conf/httpd.conf,但2.2版本与2.4版本的配置文件有所不同,2.2版本通过三段来区别配置文件中配置的不同区域,如 ### Section 1: Global Environment为全局环境配置,定义进程的工作特点或对所有的虚拟主机都通用的工作设定;### Section 2: ‘Main’ server configuration为主服务器配置段;### Section 3: Virtual Hosts为虚拟服务器配置。但2.4版本中不再有这样的设置
配置格式:
directive value
directive:不区分字符大小写;
value:为路径时,是否区分字符大小写,取决于文件系统;

3.下面通过一些功能实现来说明配置文件如何使用

修改监听的IP和PORT
格式:Listen [IP-address:]portnumber [protocol]
(1) 省略IP表示为0.0.0.0;
(2) Listen指令可重复出现多次;
(3) 修改监听socket,重启服务进程方可生效;
(4) 限制其必须通过ssl通信时,protocol需要定义为https;

测试:
1.在/etc/httpd/conf/httpd.conf中再加入一条Listen 10080,表示除了监听80端口外,也监听10080端口或在/etc/httpd/conf.d/中添加一个*.conf文件,在文件中加入Listen 10080
2.systemctl restart httpd //重启服务
3.ss -tln //查看是否监听了80和10080两个端口

持久连接(保持连接,长连接)
Persistent Connection:tcp连接建立后,每个资源获取完成后不全断开连接,而是继续等待其它资源请求的进行;只有当请求超时或超过请求数量时才断开连接

测试:
1.修改/etc/httpd/conf/httpd.conf文件或在/etc/httpd/conf.d/中添加一个*.conf文件,添加或修改如下内容:
KeepAlive On
KeepAliveTimeout 15
MaxKeepAliveRequests 100
2.通过telnet命令测试长连接是否生效
yum install telnet
telnet 192.168.1.2 80
GET /index.html HTTP/1.1
Host: 192.168.1.2
//通过telnet命令连接到服务器,之后用GET方法获取资源,在输入完Host后要按两次回车就会有信息返回,并且不会断开。如果配置文件中的KeepAlive是Off,那么获取到资源后就会断开

MPM:Multipath processing Modules (多路处理模块)
httpd-2.2不支持同时编译多个MPM模块,所以只能编译选定要使用的那个;CentOS 6的rpm包为此专门提供了三个应用程序文件,httpd(prefork), httpd.worker, httpd.event,分别用于实现对不同的MPM机制的支持;
MPM有三种模型,如下:
prefork:两级进程模型,父进程管理子进程,每个子进程响应一个请求;
worker:三级模型,父进程管理子进程,子进程通过线程响应用户请求;每线程处理一个用户请求;
event:两级模型,父进程管理子进程,子进程通过event-driven(事件驱动)机制直接响应n个请求;

CentOS6测试2.2版本:
1.查看静态编译的模块:
httpd -l
httpd.worker -l
httpd.event -l
查看静态编译及动态编译的模块:
httpd -M
httpd.worker -M
httpd.event -M
//标记为static为静态,shared为动态模块,动态模块需要通过LoadModule加载才能工作。
2.修改变量为想要启动的模型
vim /etc/sysconfig/httpd
HTTPD=/usr/sbin/httpd.{worker,event}
//改为httpd.worker或httpd.event
3.重启服务
service httpd restart
4.查看MPM模型
ps aux | grep httpd
//现在httpd应为上面修改后的MPM模型

CentOS7httpd2.4版本
1.修改MPM模型
vim /etc/httpd/conf.modules.d/00-mpm.conf
//此文件中有MPM的三个模型,将要启动的模型去掉注释,并注释掉不启动的模型
2.重启服务
systemctl restart httpd
3.查看现在的MPM模型
httpd -M | grep mpm

定义中心主机的文档页面路径
配置文件中的ServerName是标识当前主机服务于谁的,与真正的主机名无关。如果这条指定未定义,http启动时会反解服务器本地地址。如果不能反解会在启动时提示。
语法格式: ServerName [scheme://]fully-qualified-domain-name[:port]
DoucmentRoot指向的路径为URL路径的起始位置,其相当于站点URL的根路径;默认是/var/www/html/。如URL中访问的/images/logo.jpg实际路径在/var/www/html/images/logo.jpg

CentOS7httpd2.4版本测试:
1.创建目录
mkdir /data/web/www -pv
2.添加一个主页
vim /data/web/www/index.html
//在index.html中输入内容,如Main Server
3.修改配置文件
vim /etc/httpd/conf/httpd.conf
DocumentRoot “/data/web/www”
<Directory "/data/web/www">
Require all granted
</Directory>
//修改根路径,Require all granted表示允许任何人访问
4.检查语法是否有误
httpd -t
5.重新启动
systemctl restart httpd

CentOS6httpd2.2版本测试:
1.创建目录
mkdir /data/html -pv
2.添加一个主页
vim /data/html/index.html
//在index.html中输入内容,如Main Server
3.修改配置文件
vim /etc/httpd/conf/httpd.conf
DocumentRoot “/data/html”
<Directory "/data/html">
Order allow,deny
allow from all
</Directory>
//修改根路径,allow from all表示允许任何人访问
4.检查语法是否有误
httpd -t
5.重新启动
systemctl restart httpd

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

(2)
ruopu1989ruopu1989
上一篇 2017-12-07 08:50
下一篇 2017-12-08 11:49

相关推荐

  • 0803课堂练习与作业

    1、当用户xiaoming对/testdir 目录无执行权限时,意味着无法做哪些操作? 不能添加在/testdir中增删改文件或目录 2、当用户xiaoqiang对/testdir 目录无读权限时,意味着无法做哪些操作? 不能查看文件中的文件列表 3、当用户wangcai 对/testdir 目录无写权限时,该目录下的只读文件file1是否可修改和删除? 不…

    Linux干货 2016-08-04
  • LAMP三个主机的简单配置和php-admin,wordpress

    LAMP:组合应用httpd2.4:yum install httpd.2.4php-fpm:yum install php-fpm php-mysqlmysql: yum install mysql 注意:在做实验时,一定要将iptables和selinux给关了。 http:只需在httpd上写一个必须的文件/etc/httpd/conf.d/fcgic…

    2017-06-06
  • 常见RAID介绍

    RAID简介 独立硬盘冗余阵列(RAID, Redundant Array of Independent Disks),旧称廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks),简称磁盘阵列。主要目的是把多块硬盘组合起来提高数据处理能力、容错功能等 根据实现方式分为硬件和软件两种  硬件RAID:通过RAID…

    2016-04-12
  • N22+张zhangzhang+第6周博客作业

    请详细总结vim编辑器的使用并完成以下练习题   vim编辑器是vi编辑器的增强版,是全屏文本编辑器,用于完成文本的输出、删除、查找、替换、块操作等众多功能。一般分三种模式:编辑模式、输入模式、末行模式。 vim各种按键的功能 编辑模式: 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以…

    Linux干货 2016-09-20
  • 何为正则表达式?

    何为正则表达式?   UNIX/Linux上有许多文本处理工具,其中最主要最重要要属grep、sed、和awk三种了,被称为文本处理三剑客。但是要完全认识他们的各种功能,则必须现在正则表达式及其元字符的使用上打好基础。 什么是正则表达式呢?正则表达式(regular expression,RE)是一种字符模式,用于在查找过程中匹配指定的字符。正则表…

    Linux干货 2016-08-16
  • LAMP快速部署及LAMP组合深入讲解-1

      lamp php php: 脚本编程语言、嵌入到html中的嵌入式web程序开发语言;基于zend编译成opcode(二进制格式的字节码,重复运行,可省略编译环境) 一、PHP简介 PHP是通用服务器端脚本编程语言,其主要用于web开发以实现动态web页面,它也是最早实现将脚本嵌入HTML源码文档中的服务器端脚本语言之一。同时,php还提供了一…

    Linux干货 2017-06-04