Linux下Apache

一、Apache介绍

        Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。

       Apache是一种开源的httpd服务器软件,可以在UNIX、Linux以及Windows在内的大多数主流计算机操作系统系统上面运行,Apache是由Illinois大学Urbana-Champaign的国家高级计算机程序中心开发,它的名字取自apatchy server 的读音,即充满补丁的服务器,可见在最初的时候该程序并不是非常完善。

       但由于Apache是开源软件,所以得到开源社区的支持,不断开发出新的功能特性,并修补了原来的缺陷,经过多年不断的完善,如今的Apache已经是最流行的web服务端软件之一Apache拥有以下众多的特性,保证了它可以高速稳定的运行

二、Apache工作原理

三、Apache优点

1.支持所有的计算机平台简单有效的配置文件

2.支持虚拟主机

3.支持多种方式的http认证

4.集成Perl脚本语言

5.集成代理服务器模块

6.支持实时监视服务器状态和定制服务器日志

7.支持服务器端包含指令

8.支持Php

9.支持第三方软件开发商提供的软件

10.Apache模块化

 

四、Apache的主要安装方式

1.rpm安装

rpm方式安装默认文件存放位置

  • 主配置文件:/etc/httpd/conf/httpd.conf

  • 子配置目录:/etc/httpd/conf.d/

  • 网站根目录:/var/www/html/

  • 访问日志:/var/log/httpd/access_log

  • 错误日志:/var/log/httpd/error_log

2.二进制方法安装

3.源码编译安装

4.yum 安装

 

五、Apache虚拟主机

六、Apache的三种工作方式

Apache 一共有3种稳定的 MPM 模式(多进程处理模块),它们分别是 prefork、worker、event。http-2.2版本的httpd默认的mpm工作模式为prefork,2.4版本的httpd默认是event工作模式。可以通过 httpd -V 来查看。

[root@linuxblogs ~]# httpd -V | grep -i "server mpm"Server MPM: Prefork

编译的时候,可以通过 configure 的参数来指定:

--with-mpm=prefork|worker|event

1、prefork 工作模式

Apache在启动之初,就预先fork一些子进程,然后等待请求进来。之所以这样做,是为了减少频繁创建和销毁进程的开销。每个子进程只有一个线程,在一个时间点内,只能处理一个请求。

优点:成熟稳定,兼容所有新老模块。同时,不需要担心线程安全的问题。
缺点:一个进程相对占用更多的系统资源,消耗更多的内存。而且,它并不擅长处理高并发请求。

2、worker 工作模式

使用了多进程和多线程的混合模式。它也预先fork了几个子进程(数量比较少),然后每个子进程创建一些线程,同时包括一个监听线程。每个请求过来,会被分配到1个线程来服务。线程比起进程会更轻量,因为线程通常会共享父进程的内存空间,因此,内存的占用会减少一些。在高并发的场景下,因为比起prefork有更多的可用线程,表现会更优秀一些。

优点:占据更少的内存,高并发下表现更优秀。
缺点:必须考虑线程安全的问题。

3、event 工作模式

它和worker模式很像,最大的区别在于,它解决了keep-alive场景下,长期被占用的线程的资源浪费问题。event MPM中,会有一个专门的线程来管理这些keep-alive类型的线程,当有真实请求过来的时候,将请求传递给服务线程,执行完毕后,又允许它释放。这样增强了高并发场景下的请求处理能力。

HTTP采用keepalive方式减少TCP连接数量,但是由于需要与服务器线程或进程进行绑定,导致一个繁忙的服务器会消耗完所有的线程。Event MPM是解决这个问题的一种新模型,它把服务进程从连接中分离出来。在服务器处理速度很快,同时具有非常高的点击率时,可用的线程数量就是关键的资源限 制,此时Event MPM方式是最有效的,但不能在HTTPS访问下工作。

七 Apache程序环境

1、配置文件

 

相关文章