设为首页 收藏本站
查看: 634|回复: 0

[经验分享] 编译安装apache(httpd 2.4.10)

[复制链接]

尚未签到

发表于 2018-11-22 09:27:32 | 显示全部楼层 |阅读模式
  1.    安装httpd 2.4.10的必备条件


  •   APR and APR-util
      APR(Apache Portable Runtime Library),提供如下功能:
      Atomic operations
      Dynamic Shared Object loading
      File I/O
      Locks (mutexes, condition variables, etc)
      Memory management (high performance allocators)
      Memory-mapped files
      Multicast Sockets
      Network I/O
      Shared memory
      Thread and Process management
      Various data structures (tables, hashes, priority queues, etc)
  


  •   Perl-Compatible Regular Expressions Library(PCRE)
      PCRE用于提供类似perl的正则表达式功能
      

      

  •   保证有至少50M的临时空间(/tmp),安装文件需要至少10M的硬盘空间
      

  •   需要GCC编译器
      

  •   需要ntp提供准确的时间
      

  •   可选的perl5的安装
      

      

  2.    下载软件包
  apr and apr-util: http://apr.apache.org
  httpd: http://httpd.apache.org
  

  3.    安装依赖软件pcre apr apr-util gcc
//解压
# tar jxvf httpd-2.4.10.tar.bz2
# tar jxvf apr-1.5.1.tar.bz2
# tar jxvf apr-util-1.5.4.tar.bz2
//安装
# yum -y install pcre-devel
# cd apr-1.5.1  
# ./configure --prefix=/usr/local/apr && make && make install
# cd apr-util-1.5.4
# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr && make && make install  

  4.    安装httpd-2.4.10
  httpd 2.4的新特性:


  •   Run-time Loadable MPMs:  mpm支持在运行时装载
  •   Event MPM:    支持event mpm
  •   Asynchronous support:    支持异步读写
  •   Per-module and per-directory LogLevel configuration:    支持每个模块、每个目录级别的日志配置
  •   Per-request configuration sections:    支持每请求区域配置
  •   General-purpose expression parser: 增强版的表达式解析器
  •   KeepAliveTimeout in milliseconds:    keepalive 超时时间支持毫秒级(ms)
  •   NameVirtualHost directive被弃置
  •   Override Configuration:
  • AllowOverrideList Redirect RedirectMatch
  •   Config file variables:    支持在配置文件中定义变量
  •   Reduced memory usage:    减少了内存使用

# cd httpd-2.4.10
# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --enable-modules=most --enable-mpms-shared=all --with-mpm=event
# make
# make install  5.    MPMs(Multi-Processing Modules)

  MPM用于bind网络端口、接受请求、调度子进程处理请求。

  构建mpm为一个静态模块:编译时使用选项--with-mpm=[prefork|worker|event]

  构建mpm为一个DSO模块:  修改配置文件
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so  unix平台下的三种MPM:prefork、worker、event

  prefork:

  prefork用于实现一种不使用线程,预派生的web服务器。适用于不支持线程(没有线程兼容库) 的平台或环境,也适用于隔离每个请求的场景(单个请求出现问题不会影响其它请求)。 一个进程响应一个请求。
# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# MaxRequestWorkers: maximum number of server processes allowed to start
# MaxConnectionsPerChild: maximum number of connections a server process serves
#                         before terminating

    StartServers             5    //默认启动的工作进程数
    MinSpareServers          5    //最小空闲进程数
    MaxSpareServers         10    //最大空闲进程数
    MaxRequestWorkers      250    //允许被启动的最大工作进程数
    MaxConnectionsPerChild   0    //每个进程在生命周期内所允许服务的最大请求数
  prefork的工作过程:

  在httpd服务启动之后,初始启动5个工作进程(由StartServers定义),httpd根据需要自动调整工作进程的个数,最大允许启动250个工作进程(由MaxRequestWorkers定义),也就是说当网站访问量大的时候,启动了大量工作进程,而在访问量变少时,不再需要这些工作进程了,httpd通过MinSpareServers和MaxSpareServers自动调节工作进程的数量。如果当前的空闲进程大于MaxSpareServer定义的最大空闲进程数,httpd将会杀死超额的工作进程;如果当前的空闲进程小于MinSpareServer定义的最小空闲进程数,httpd将会启动新的工作进程:启动1个进程,稍等一会儿,启动2个进程,稍等一会儿,启动4个进程,然后一直以指数方式启动进程,一直到每秒钟产生32个工作进程,它将停止启动进程,一直到当前进程能满足最小空闲进程(MinSpareServers)。一个工作进程在处理了最大请求数(MaxConnectionsPerChild)之后,将会被杀死,设置为0表示永不地期。

  worker:

  worker用于实现一种混合多进程、多线程web服务器。通过使用线程处理大量请求,比使用进程处理请求消耗更少的系统资源。 一个线程响应一个请求。   

# worker MPM
# StartServers: initial number of server processes to start
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadsPerChild: constant number of worker threads in each server process
# MaxRequestWorkers: maximum number of worker threads
# MaxConnectionsPerChild: maximum number of connections a server process serves
#                         before terminating

    StartServers             3    //默认启动的工作进程数
    MinSpareThreads         75    //最小空闲进程数
    MaxSpareThreads        250    //最大的空闲进程数
    ThreadsPerChild         25    //每个工作进程可以产生的线程数
    MaxRequestWorkers      400    //允许启动的最大工作进程数
    MaxConnectionsPerChild   0    //每个进程在生命周期内所允许服务的最大请求数
  worker的工作过程:

  在httpd服务启动之后,初始启动3个工作进程(由StartServers定义),每个工作进程允许产生25个线程(由ThreadsPerChild定义)。根据需要在MinSpareServer和MaxSpareServer范围内自动启动新的工作进程和杀死超额的工作进程。最大允许启动的工作进程数为400(由MaxRequestWorkers定义)。一个工作进程在处理了最大请求数(MaxConnectionsPerChild)之后,将会被杀死,设置为0表示永不地期。
  event:

  event用于实现一个线程处理处理多个请求的web服务器。它是一个基于worker MPM的,配置参数和worker一致。

# event MPM
# StartServers: initial number of server processes to start
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadsPerChild: constant number of worker threads in each server process
# MaxRequestWorkers: maximum number of worker threads
# MaxConnectionsPerChild: maximum number of connections a server process serves
#                         before terminating

    StartServers             3    //默认启动的工作进程数
    MinSpareThreads         75    //最小空闲进程数
    MaxSpareThreads        250    //最大的空闲进程数
    ThreadsPerChild         25    //每个工作进程可以产生的线程数
    MaxRequestWorkers      400    //允许启动的最大工作进程数
    MaxConnectionsPerChild   0    //每个进程在生命周期内所允许服务的最大请求数
  event的工作过程:

  和work类似,只不过event实现了一个线程响应多个请求,而worker只能一个线程响应一个请求。

  

  6.    配置侦听端口
#Listen 12.34.56.78:80
Listen 80
Listen 8080
Listen 192.168.57.23:8081  

  7.    配置虚拟主机
# vim httpd.conf
# Virtual hosts
#Include /etc/httpd24/extra/httpd-vhosts.conf //此行改为
Include /etc/httpd24/extra/httpd-vhosts.conf
# vim extra/httpd-vhosts.conf
//配置如下

    ServerAdmin webmaster@www.tech.com
    DocumentRoot "/usr/local/apache/htdocs/www.tech.com"
   
        Options all
   
    ServerName www.tech.com
    ServerAlias tech.com
    ErrorLog "logs/www.tech.com-error_log"
    CustomLog "logs/www.tech.com-access_log" combined


    ServerAdmin webmaster@www.dev.com
    DocumentRoot "/usr/local/apache/htdocs/www.dev.com"
   
        Options all
   
    ServerName www.dev.com
    ServerName dev.com
    ErrorLog "logs/www.dev.com-error_log"
    CustomLog "logs/www.dev.com-access_log" combined

# service httpd restart   //重启服务  

  8.    配置页面属性

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-638040-1-1.html 上篇帖子: nginx,apache屏蔽特定路径下的php,python解析 下篇帖子: apache_work
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表