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

相关推荐

  • Linux设备驱动Hello World程序介绍

    by Valerie Henson07/05/2007 (译者注:本文的例子是只能在linux的2.6内核下使用的,2.6以上的内核,译者没有做过实验,2.4是要修改make文件才能运行。) 本文的出处:这里 自古以来,学习一门新编程语言的第一步就是写一个打印“hello world”的程序(可以看《hello world 集中营》这个帖子供罗列了300个“…

    Linux干货 2015-04-01
  • 计算机基础

    小白入门

    2018-03-08
  • 第二周 博客作业

    1、linux上的文件管理类命令有哪些,其常用的使用方法及其相关示例。 文件管理命令:rm  mv cp       cp 复制命令       cp   源文件   目标文件           工作机制:如…

    Linux干货 2016-11-03
  • 游戏运维工程师

    爱乐盟互动为深圳市政府评定的深圳市重点文化企业,同时为广东省高科技产业商会常务理事单位,注册资金人民币1000万元。公司的原创大型MMORPG网游《王者传说2》为深圳市政府重点支持的网游项目,《王者传说2》将全面领先于国内的同类产品,成为业界新标准的重要网游产品!! 《王者传说2》已进入产品研发的重要阶段。除《王者传说2》,爱乐盟也已经启动了数款全新大型网游…

    Linux干货 2016-10-19
  • Linux_创建文件系统及挂载文件系统流程详解

    Linux 创建文件系统及挂载文件系统流程详解 摘要:本文对新增硬盘,切割硬盘,创建硬盘分区,为硬盘分区创建文件系统,以及加载文件系统的流程做总结性论述;主要是为初学者弄清楚这一操作过程;本文涉及fdisk、mkfs、mount … … 等工具;对/etc/fstab 进行了解说;还有磁盘扫描工具fsck 等介绍; +++++++++…

    Linux干货 2016-01-18
  • linux系统的路由功能

    1、概要    大家应该都明白,不同网段的报文包传播,是需要路由的转发转发功能的,那么,一个linux操作系统能不能充当路由器呢?下面不妨来验证一下。 2、网络拓扑 3、实现过程    <1>俩个centos6分别充当Router1和Router2。并添加足够的网卡。    <2&…

    Linux干货 2016-09-06