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>

推荐阅读更多精彩内容

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