专栏名称: 程序员之家
程序员第一自媒体,与你探讨码农人生路上遇到的各类泛技术话题,定期为你推荐码农人生思考、感悟以及启迪!
目录
相关文章推荐
程序员技术  ·  某程序员:感觉身边35岁后月薪稳定在40k以 ... ·  7 小时前  
51CTO技术栈  ·  突发!刚被OpenAI收购就惨遭Claude ... ·  11 小时前  
稀土掘金技术社区  ·  URL地址末尾加不加”/“有什么区别 ·  3 天前  
51好读  ›  专栏  ›  程序员之家

中小型网站架构分析及优化

程序员之家  · 公众号  · 程序员  · 2017-03-27 22:02

正文

请到「今天看啥」查看全文


SetOutputFilterDEFLATE #启用压缩

AddOutputFilterByTypeDEFLATE text/html text/plain text/xml #压缩类型

AddOutputFilterByTypeDEFLATE css js html htm xml php


2).mod_expires缓存模块


查看是否加载:


# apachectl M |grep expires



如果没有安装使用apxs编译进去:


# /usr/local/apache/bin/apxs c I A apache源码目录/modules/mod_expires.c


再在httpd.conf启用模块: LoadModule expires_module modules/mod_expires.so


缓存机制有三种用法:全局、目录和虚拟主机


全局配置,在配置文件末尾添加:


ExpiresActiveon #启用有效期控制,会自动清除已过期的缓存,然后从服务器获取新的

ExpiresDefault "accessplus 1 days" #默认任意格式的文档都是1天后过期

ExpiresByTypetext/html "access plus 12 months"

ExpiresByTypeimage/jpg "access plus 12 months" #jpg格式图片缓存12月


3).工作模式选择及优化


apache有两种常见工作模式,worker和prefork,默认是worker,是混合型的MPM(多路处理模块),支持多进程和多线程,由线程来处理请求,所以可以处理更多请求,提高并发能力,系统资源开销也小于基于进程的MPM,由于线程使用进程内存空间,进程崩溃会导致其下线程崩溃。而prefork是非线程型MPM,进程占用系统资源也比worker多,由于进程处理连接,在工作效率上也比worker更稳定。可通过apache2 l查看当前工作模式,在编译时使用—with-mpm参数指定工作模式。根据自己业务需求选择不同工作模式,再适当增加工作模式相关参数,可提高处理能力。


配置参数说明:


StartServers 8 #默认启动8个httpd进程

MinSpareServers 5 #最小的空闲进程数

MaxSpareServers 20 #最大的空闲进程数,如果大于这个值,apache会自动kill一些进程

ServerLimit 256 #服务器允许进程数的上限

MaxClients 256 #同时最多发起多少个访问,超过则进入队列等待

MaxRequestsPerChild 4000 #每个进程启动的最大线程








请到「今天看啥」查看全文