Apache源码编译安装及优化

下载httpd源码包

wget http://archive.apache.org/dist/httpd/httpd-2.2.25.tar.gz
tar -xvf httpd-2.2.25.tar.gz
cd httpd-2.2.25.tar.gz

版本信息的屏蔽

1.编译前,屏蔽版本信息
vim include/ap_release.h
#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 #补丁级别
#define AP_SERVER_DEVBUILD_BOOLEAN 0 #
2.对apache进行编译安装
yum install openssl*
./configure --prefix=/usr/local/apache2.2.25/ --enable-so --enable-rewrite --enable-ssl --with-mpm=worker

配置参数用途

--perfix=/usr/local/apache2.2.25        指定安装路径
--enable-so                     支持动态加载模块
--enable-rewrite                    支持网站地址重写
--enable-ssl                        支持ssl加密
--with-mpm=worker                   更改Apache运行模式为

make -j 4 && make install 安装
3.再次隐藏服务信息
vim /usr/local/apache2.2.25/conf/httpd.conf
Include conf/extra/httpd-default.conf   取消注释

vim /usr/local/apache2.2.25/conf/extra/httpd-default.conf
ServerTokens Full ===》》ServerTokens Prod        不显示服务器操作系统类型
ServerSignature On ===》》ServerSignature OFF  不显示web服务版本号和模块版本
4.启动apache
cp /usr/local/apache2.2.25/bin/apachectl /etc/init.d/apachectl
/etc/init.d/apachectl -k start
重载
/etc/init.d/apachectl -k gracefu

长连接功能

优点:保持连接,减少三次握手,但是会小号内存

1.开启长连接
vim /usr/local/apache2.2.25/conf/httpd.conf
在Lient
KeepAlive on
KeepAliveTimeout 15     #保持长连接的时长
#MaxKeepAliveRequests       #保持长连接后允许发送的请求数,一般不需要配置,默认100

压缩功能

1.查看模块时候安装
/usr/local/apache2.2.25/bin/apachectl -M | grep defalte
Syntax OK 没有安装
defalte_module(static)  编译时已安装
defalte_module(shared)  以DSO的方式安装

DSO安装方法:

cd /root/httpd-2.2.25/modules/filters
/usr/local/apache2.2.25/bin/apxs -c -i -a /root/httpd-2.2.25/modules/filters/mod_deflate.c
安装完成后http.conf文件 54行左右会有
LoadModule deflate_module modules/mod_deflate.so
以下配置文件在这行下添加
2.配置压缩模块
vim /usr/local/apache2.2.25/conf/httpd.conf
<ifModule mod_deflate.c>
DeflateCompressionLevel 9       压缩等级,越大效率越高,消耗CPU也越高
SetOutputFilter DEFLATE
DeflateFilterNote Input instream
DeflateFilterNote Output outstream
DeflateFilterNote Ratio ratio
AddOutputFilterByType   DEFLATE text/html text/plain text/xml text/css application/javascript
#限制特定的MIME类型文件
</ifmodule>

对apache进行重启

/usr/local/apache2.2.25/bin/httpd -k graceful       重新加载配置文件

缓存功能

1.DSO安装
/usr/local/apache2.2.25/bin/apxs -i -c -a /root/httpd-2.2.25/modules/metadata/mod_expires.c
2.修改配置文件httpd.conf

使用
对全局 对目录 对虚拟机

vim /usr/local/apache2.2.25/conf/httpd.conf
<IfModule !mpm_winnt_module>
<IfModule mod_expires.c>
ExpiresActive on
ExpiresDefault "access plus 12 month"
ExpiresByType text/html "access plus 12 months"
ExpiresByType text/css "access plus 12 months"
ExpiresByType image/gif "access plus 12 months"
ExpiresByType image/jpeg "access plus 12 months"
ExpiresByType image/jpg "access plus 12 months"
ExpiresByType image/png "access plus 12 months"
EXpiresByType application/x-shockwave-flash "access plus 12 months"
EXpiresByType application/x-javascript "access plus 12 months"
ExpiresByType video/x-flv "access plus 12 months"
</IfModule>

对apache进行重启

/etc/init.d/apachectl graceful      重新加载配置文件

Apache运行模式worker

1.查看apache是否运行work模式
/usr/local/apache2.2.25/bin/httpd -l | grep work
2.修改配置文件
vim /usr/local/apache2.2.25/conf/httpd.conf
最后一行添加
<IfModule worker.c>
StartServers 2                  最初建立的子进程
MaxClients 150              apache同时支持的并发量
MinSpareThreads 25          最小空闲线程,如果线程小于这个值,自动创建线程
MaxSpareThreads 75          最大线程数,如果县城大于这个值,自动kill掉多余线程
ThreadsPerChild 25              每个子迚程包含固定的线程数
MaxRequestsPerChild 0           每个子迚程可以支持的请求数,这要设置为 0
</IfModule>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容

  • http协议及Apache服务 http协议 什么是http? http全称为超文件传输协议(Hyper text...
    魏镇坪阅读 2,244评论 0 1
  • 一、Nagios简介 Nagios是一款开源的电脑系统和网络监视工具,能有效监控Windows、Linux和Uni...
    1b3bd36d9d21阅读 8,140评论 3 13
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,580评论 18 139
  • 一直在想写些什么东西!每次看到别人的文章,优美的或深邃入骨的句子,献上的都是羡慕的眼神。会想在这文章的背后是怎样的...
    一个小疯子阅读 147评论 0 1
  • 传说中圆是最完整的图案 有这样一个故事,在最原始的时代是没有男人和女人的差别。只有一种人,后来上帝觉得人应该靠...
    长歌7788阅读 507评论 9 4