zoukankan      html  css  js  c++  java
  • Apache2.4.6服务器安装及配置

    一、系统环境

    系统版本:Aliyun Linux release 5.7

    内核版本:2.6.18-274.el5

    apr版本:apr-1.4.8

    apr-util版本:apr-util-1.5.2

    pcre版本:pcre-8.33

    Apache版本:Apache/2.4.6 (Unix)

    二、Apache简介

        Apache 作为历史最悠久的web服务器,一直是web应用系统的首选,是世界上被广泛应用的web 服务器软件,它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的web服务器端软件之一,也是流行架构LAMP的重要组成部分。

    三、Apache特点

    • 支持最新的HTTP/1.1通信协议。Apache是最先使用HTTP/1.1协议的Web服务器之一,它完全兼容HTTP/1.1协议并与HTTP/1.0协议向后兼容。Apache已为新协议所提供的全部内容做好了必要的准备。
    • 支持多计算机平台。Apache几乎可以在所有的计算机操作系统上运行,包括主流的UNIX、Linux及Windows操作系统。
    • 配置文件简单,易操作。用户可以通过直接修改Apache的配置文件信息来修改Apache,操作起来十分方便。
    • 支持实时监视服务器状态和定制服务器日志。Apache在记录日志和监视服务器自身运行状态方面提供了很大的灵活性,可以通过Web浏览器来监视服务器的状态,也可以根据自己的需要来定制日志。
    • 支持多种方式的HTTP认证。
    • 支持Web目录修改。用户可以使用特定的目录作为Web目录。
    • 支持CGI脚本,如Perl、PHP等。
    • 支持服务器端包含指令(SSI)。
    • 支持安全Socket层(SSL)。
    • 支持FastCGI。
    • 支持虚拟主机。即通过在一台服务器上使用不同的主机名来提供多个HTTP服务。Apache支持基于IP、主机名和端口号三种类型的虚拟主机服务。
    • 跟踪用户会话。当用户浏览基于Apache的Web站点时,可以通过Apache的mod_usertrack模块对其进行跟踪。
    • 支持动态共享对象。Apache的模块可在运行时动态加载,这就意味着这些模块可以被装入服务器进程空间,从而减少系统的内存开销。
    • 支持多进程。当负载增加时,服务器会快速生成子进程来处理,从而提高系统的响应能力。
    • 支持第三方软件开发商提供的功能模块。比如Apache加载mod_jserv模块后可以支持Java Servlet,这样就可以运行Java应用程序了。
    • 支持多线程和多进程混合模型的MPM。 当MPM类型指定为worker时,由于是使用线程来处理,所以可以处理海量的请求,而系统资源的开销要小于基于进程的服务器。

    四、Apache2.4新特性

    1、MPM支持在运行时装载

    --enable-mpms-shared=all --with-mpm=event 启用默认的event

    2、支持event

    3、异步读写

    4、在每模块及每目录上指定日志级别

    5、每请求配置:<If> <Elseif>

    6、增强版的表达式分析器

    7、毫秒级的keepalive timeout

    8、支持主机名的虚拟主机不在需要NameVirtualHost指令

    9、支持使用自定义变量

    10、新增一些模块:mod_proxy_fcgi,mod_ratelimit,mod_request,mod_remoteip

    11、对于基于IP的访问做了修改,不在使用order,allow,deny这些机制;而是统一使用require进行

    五、安装前准备

    1、安装Apache可移植运行库(apr:Apache portable runtime)

    # tar -zxvf apr-1.4.8.tar.gz

    # cd apr-1.4.8

    # ./configure --prefix=/usr/local/apr

    # make && make install

    2、安装Apache可移植运行库工具包

    # tar -zxvf apr-util-1.5.2.tar.gz

    # cd apr-util-1.5.2

    # ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/

    # make && make install

    3、安装PCRE(Perl Compatible Regular Expressions)Perl库文件

    # tar -zxvf pcre-8.33.tar.gz

    # cd pcre-8.33

    # ./configure --prefix=/usr/local/pcre

    # make && make install

    六、安装Apache服务器

    # tar -zxvf httpd-2.4.6.tar.gz

    # cd httpd-2.4.6

    # ./configure --prefix=/usr/local/apache --enable-rewrite --enable-so --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre/ --enable-ssl --enable-deflate --enable-expires --with-mpm=event

    # make && make install

    参数简单说明:

    --prefix=/usr/local/apache:apache安装路径

    --enable-rewrite:支持网站地址重写

    --enable-so:支持动态加载模块

    --with-apr=/usr/local/apr:apache可移植库的路径

    --enable-ssl:支持ssl加密

    --enable-deflate:支持传输前进行压缩

    --enable-expires:支持设置页面缓存时间

    --with-mpm=prefork:指定Apache的运行模式(本人的默认是event)

    --enable-modeles=most(常用的模块)

    注:

    • 如果源码安装与rpm包安装方式共存需要进行的配置:

       1、导出头文件

       # ln -sv /usr/local/apache/include /usr/include/httpd

       2、导出库文件

          # ldconfig

          # ldconfig -p

       3、导出man手册

          # vim /etc/man.config加入

          MANPATH /usr/local/apache/man

          新版httpd的man帮助文件

          # man -M /usr/local/apache/man httpd

       4、输出二进制程序

          # vim /etc/profile.d/httpd.sh加入

          export PATH=/usr/local/apache/bin:$PATH

          . /etc/profile

          启动httpd服务:apachectl start

    • event MPM对于老的CPU可能是不支持的
    • 本人编译的只添加了这些模块,如果有需要可以在编译过程中进行添加,或者重新编译
    • 编译前通过修改源码文件隐藏Apache服务器名称及版本号,然后再通过httpd-default.conf配置文件即可将版本信息隐藏

        # vim include/ap_release.h

        服务器供应商名称Apache软件基金会

        #define AP_SERVER_BASEVENDOR "Apache Software Foundation"

        服务的项目名称

        #define AP_SERVER_BASEPROJECT "Apache HTTP Server"

        服务的产品名称

        #define AP_SERVER_BASEPRODUCT "Apache"

        #define AP_SERVER_MAJORVERSION_NUMBER 2 主版本号

        #define AP_SERVER_MINORVERSION_NUMBER 4 次版本号

        #define AP_SERVER_PATCHLEVEL_NUMBER   6 修正号

  • 相关阅读:
    使用linux将一个服务器上的文件或者文件夹复制黏贴到另一个服务器上
    深度学习之常用linux命令总结
    python 操作MYSQL数据库
    MYSQL登录及常用命令
    mysql数据库可视化工具—Navicat Premium—安装与激活
    Mysql数据库的简单介绍与入门
    java 正则匹配int型
    js设置文本框只能输入数字
    Java数据抓取(一)
    Nodejs的多线程
  • 原文地址:https://www.cnblogs.com/fansik/p/5633451.html
Copyright © 2011-2022 走看看