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

[经验分享] web服务器架构与Apache

[复制链接]

尚未签到

发表于 2018-11-21 11:23:44 | 显示全部楼层 |阅读模式
  web服务器架构与Apache

WEB应用系统一般由WEB服务器统一处理客户端的HTTP请求,WEB服务器负责处理静态页面,动态页面转发给应用服务器,应用服务器再将其中的数据访问请求给数据库服务器处理,

客户机-->WEB服务器 --> APP服务器 —->数据库服务器

MPM对Apache性能的影响
worker MPM:使用多个子进程,每个子进程中又有多个线程,每个线程处理一个请求。该MPM通常对高流量的服务器是一个不错选择,因为它比prefork MPM需要更少的内存而且更具有伸缩性
prefork MPM:使用多个子进程,但每个子进程并不包含多线程,每个进程只处理一个连接,在许多系统上它的速度和worker MPM一样快,但是,需要更多的内存。这种无线程的设计在某些情况下优于worker MPM,因为它可以应用于不具备线程安全的第三方模块上,且在不支持线程调试的平台上易于调试,另为还具有比worker MPM更高的稳定性

调整  Max Clients
内存是影响web服务器的重要因素之一,而且采用prefork MPM的话,由于每个进程会占据一定的内存,因此需要注意调整Max Clients参数,以便在提供足够的连接给客户端的同时,不至于耗尽服务器的内存,Max Client 是指Apache最多能启用的服务器进程数。
如果出下一下情况,则可以推断有可能需要增加服务器内存,加到Apache的MaxClients数量
网站在线人数增多,访问时很慢,初步认为是服务器资源不足,但反复测试,一旦连接上,不断点击同一个页面上的连接,都能迅速打开,这种现象说明Apache最大连接数已经满了,新的访客只能排队等待空闲的连接,而如果一旦连接上,KeepAlive的存活时间内都不用重新打开连接,因此解决的方法就是加大Apache的最大连接数。
vi httpd-mpm.conf
# 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
# ServerLimit: maximum value for MaxClients for the lifetime of the server
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves

StartServers       8   
MinSpareServers    5
MaxSpareServers   20
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  4000


# 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 #启动Apache时就启动的服务器进程
    MinSpareServers          5 #最少保留的备用服务器进程
    MaxSpareServers         10 #最大保留的备用服务器进程
    MaxRequestWorkers      250
    MaxConnectionsPerChild   0 #一个服务器进程可处理的请求数量


# worker MPM
# StartServers: initial number of server processes to start
# MaxClients: maximum number of simultaneous client connections
# 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
# MaxRequestsPerChild: maximum number of requests a server process serves

ServerLimit         32
ThreadLimit         64  #必须放到最前面
StartServers         4
MaxClients         300  
MinSpareThreads     25  
MaxSpareThreads     75
ThreadsPerChild     25  
MaxRequestsPerChild  0

MaxSpareServers :是指Apache最大保留的备用服务器进程,如果你的系统内存不是很充足,或者运行有其他的服务,把MaxSpareServrs设置小一些可以为其他服务空出一些内存

mod_cache
mod_cache:为了能够支持cache,需要在编译的时候启用它,默认caching是禁用的。mod_cache一共有3中mod_mem_cache,mom_disk_cache,mod_file_cache,
为了能够编译cache,需要在编译时设置
--enable-cache --enable-disk-cache --enable-mem-cache --enable-file-cache
安装后编译httpd.conf,添加

        CacheDefaultExpire  3600
        CacheMaxExpire    86400
        CacheLastModfiedFactor  0.1
        
   
        CacheRoot  /usr/local/apache2/cache   #创建读写权限
        CacheMaxFileSize      10000000
        CacheMinFileSize      1
        CacheEnable  disk     /               #
        CacheDirLevels        5
        CacheDirLength        3
        


        CacheEnable mem      /
        MCacheSize           4096   #缓存数据最多能够使用的内存
        MCaheMaxObjectCount   2000  #内存中最多能够缓存对象的个数
        MCaheMinObjectSize    1     #单个缓存对象的最小值
        MCaheMaxObjectSize    2048  #单个缓存对象的最大值





运维网声明 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-637727-1-1.html 上篇帖子: Apache三种MPM模型简介及应用 下篇帖子: org.apache.tomcat.util.bcel.classfile.ClassFormatException:it is not a Java .cla
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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