Apache

8.2 Apache概述

Apache HTTP Server(以下简称Apache)是Apache软件基金会(Apache软件基金会官方网站:http://www.apache.org/)的一个开源的Web服务器,可以在大多数操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。

Apache起初由伊利诺伊大学香槟分校的国家超级电脑应用中心(NCSA)开发。此后Apache被开放源代码团体的成员不断的发展和加强。Apache服务器拥有牢靠可信的美誉,已用在超过半数的网站中。

Apache最初只是作为Netscape Web服务器(后来的Sun ONE)之外的一个选择,但随着Apache的不断发展它开始在功能和速度上超越其他的基于UNIX平台的HTTP服务器。Apache一直是 Internet上最流行的Web服务器,不过随着拥有大量域名数量的主机域名商转换为微软IIS平台,再加上Google推出自己的Web服务器平台 GWS及Lighttpd等一些轻量级Web服务器的推出,Apache市场占有率近年来呈现出一些下滑的趋势,尽管如此Apache仍然是现阶段 Internet市场上,市场占有率最高的Web服务器软件。

Apache支持许多特性,而这些特性大部分通过编译的模块实现。这些特性从服务器端的编程语言支持到身份认证方案等包括目前所有流行的Web服务 器应用。由于Apache良好的开放性,目前也有很多非官方的模块用以满足某些特殊的应用,在Apache 2.x中默认包含的模块如表8-2所示。

表8-2 Apache模块

 

续表


 
 
 

   

mod_file_cache

提供文件描述符缓存支持,

从而提高Apache性能

 

mod_headers

允许通过配置文件控制任意的

HTTP请求和应答头信息

 

mod_ident

实现RFC1413规定的ident查找

 

mod_info

生成Apache配置情况的Web页面

 

mod_ldap

为其他LDAP模块提供LDAP

接池和结果缓存服务

 

mod_log_forensic

实现“对比日志”,即在请求被处理之

前和处理完成之后进行两次记录

 

mod_logio

对每个请求的输入、输出字节数以

HTTP头进行日志记录

 

mod_mem_cache

基于内存的缓存管理器

 

mod_mime_magic

通过读取部分文件内容自动猜测

文件的MIME类型

 

mod_proxy

提供HTTP 1.1的代理/网关功能支持

 

mod_proxy_ajp

mod_proxy的扩展,提供

Apache JServ Protocol支持

 

mod_proxy_balancer

mod_proxy的扩展,提供负载平衡支持

 

mod_proxy_connect

mod_proxy的扩展,提供对处理

HTTP CONNECT方法的支持

 

mod_proxy_ftp

mod_proxyFTP支持模块

 

mod_proxy_http

mod_proxyHTTP支持模块

 

mod_rewrite

一个基于一定规则的实时

重写URL请求的引擎

 

mod_so

允许运行时加载DSO模块

 

mod_speling

自动纠正URL中的拼写错误

 

mod_ssl

使用安全套接字层(SSL)和传输层安全

TLS)协议实现高强度加密传输

 

mod_suexec

使用与调用Web服务器的用户不同的用户

身份来运行CGISSI程序

 

mod_unique_id

为每个请求生成惟一的标识以便跟踪

 

mod_usertrack

使用Session跟踪用户(会发送很多Cookie),

以记录用户的点击流

 

mod_version

提供基于版本的配置段支持

 

mod_vhost_alias

提供大批量虚拟主机的动态配置支持

 


Apache 2.x版本在Apache 1.x版本之上做出了改进,比如:线程,更好的支持非UNIX平台(比如Windows),新的Apache API,以及对IPv6支持。

8.3 Apache安装

(1)使用RPM方式安装Apache使用如下命令。

  
  
  
  
  1. rpm -ivh apr-1.2.7-11.i386.rpm  
  2. rpm -ivh postgresql-libs-8.1.11-1.el5_1.1.i386.rpm  
  3. rpm -ivh apr-util-1.2.7-7.el5.i386.rpm  
  4. rpm -ivh httpd-2.2.3-11.el5_1.3.i386.rpm 

(2)使用YUM方式,可直接使用如下命令安装。

  
  
  
  
  1. yum -y install httpd.i*

    8.4 Apache服务配置

    在Apache服务安装完成后,需要修改Apache服务配置文件以满足使用需求。

    8.4.1  常规配置(1)

    1.Apache服务启动、暂停

    Apache属于System V服务,其启动、暂停相关命令如下。

         
         
         
         
    1. service httpd start     #启动  
    2. service httpd stop      #停止  
    3. service httpd restart       #重新启动  
    4. service httpd reload    #重新加载  
    5. service httpd status    #查看当前启动状态  

    2.Apache服务自动加载

    设置Apache服务下一次开机运行状态可通过以下命令或使用ntsysv命令在服务设置界面中配置,如图8-2所示。

         
         
         
         
    1. chkconfig httpd on                  #在运行级别2、3、4、5上设置为自动运行。  
    2. chkconfig httpd off                 #在运行级别2、3、4、5上设置为不自动运行。  
    3. chkconfig httpd --level 35 on       #在运行级别3、5上设置为自动运行。  
    4. chkconfig httpd --level 35 off      #在运行级别3、5上设置为不自动运行。  
     
    图8-2  ntsysv命令配置服务

    3.修改SELinux状态

    在Apache服务器中并不是所有的操作都会受到SELinux的影响,下面列出的是所有与Apache服务器有关的SELinux配置。

         
         
         
         
    1. setsebool -P httpd_enable_cgi 1                     ①  
    2. chcon -t -R httpd_sys_script_exec_t /var/www/cgi        ②  
    3. setsebool -P httpd_enable_homedirs 1                    ③  
    4. setsebool -P httpd_tty_comm 1                       ④  
    5. setsebool -P httpd_unified 0                            ⑤  
    6. setsebool -P httpd_builtin_scripting 0                  ⑥  
    7. setsebool -P httpd_can_network_connect 1            ⑦  
    8. setsebool -P httpd_suexec_disable_trans 1           ⑧  
    9. setsebool -P httpd_disable_trans 1                      ⑨  
    10. semanage port -a -t http_port_t -p tcp 81           ⑩  

    其中各行含义如下。

    ①:允许Apache执行CGI程序。

    ②:修改CGI文件的安全上下文件。

    ③:允许Apache访问用户家目录。

    ④:允许Apache访问终端。

    ⑤:取消Apache访问文件的安全上下文检查。

    ⑥:取消SELinux对脚本程序的限制。

    ⑦:允许通过网络连接到httpd服务。

    ⑧:允许Apache使用su进行身份切换。

    ⑨:取消SELinux对Apache的限制。

    ⑩:允许Apache侦听81端口的HTTP请求(修改了Apache的侦听端口)。

    除了上述SELinux配置外,推荐使用如下命令修改网页文件的安全上下文(并不是所有的网页文件都会因为安全上下文而受到SELinux的限制)。

         
         
         
         
    1. #/var/site/bbs.example.com为网页文件存放目录。  
    2. chcon -R -t httpd_sys_content_t  /var/site/bbs.example.com  

    4.配置文件结构

    Apache服务配置文件有以下几个共性。

    (1)以"#"开始的是注释行(在执行时将被忽略)。

    (2)关键字对大小写不敏感。

    (3)大多数参数都使用"参数 值"的方式配置。

    (4)大多数参数在有多个值时,使用空格分隔。

    主配置文件/etc/httpd/conf/httpd.conf由以下3部分组成(在本章的配置中如无特殊说明,所有参数的修改均指该配置文件)。

你可能感兴趣的:(apache)