Linux课程笔记 Apache的优化

Apache服务优化

1 配置Apache日志轮询


apache自带的日志轮询工具也是可以使用的,但是老师测试会丢日志,所以采用cronolog来配置日志轮询

tar zxf cronolog-1.6.2.tar.gz

cd cronolog-1.6.2

./configure

make

make install

<VirtualHost *:80>

ServerAdmin [email protected]

DocumentRoot "/var/html/www"

ServerName www.etiantian.com

ServerAlias etiantian.com

ErrorLog "logs/www.etiantiancom-error_log"

# CustomLog "logs/www.etiantiancom-access_log" common

CustomLog "|/usr/local/sbin/cronolog /application/apache/logs/access_www_%w.log" combined

#注意这里要写全路径,%w表示按周轮询

</VirtualHost>

2 错误页面优雅显示


[[email protected] bin]# grep "ErrorDocument 404" /application/apache/conf/httpd.conf

#ErrorDocument 404 /missing.html

#ErrorDocument 404 "/cgi-bin/missing_handler.pl"

#可以指定404错误提示的页面,可以是URL,也可以是脚本或者文件

3 mod_deflate文件压缩功能

3.1 mod_deflate模块介绍

mod_deflate模块提供了DEFLATE输出过滤器,允许服务器在将输出内容发送到客户端之前进行压缩,提升用户体验。

3.2 mod_deflate安装检查

(1) 编译安装httpd情况时是否已经安装mod_deflate,命令为:


[[email protected] ~]# /application/apache/bin/apachectl -l |grep mod_deflate

mod_deflate.c

(2) 如果是以DSO方式编译的(--enable-so开启DSO编译方式),则查看方法为:


[[email protected] ~]# ls /application/apache/modules/ |grep mod_deflate

mod_deflate.so

[[email protected] ~]# grep mod_deflate.so /application/apache/conf/httpd.conf

LoadModule  deflate_module  modules/mod_deflate.so

[[email protected] ~]# /application/apache/bin/apachectl -M |grep deflate

deflate_module(dynamic)  #static是表示在编译的时候就已经安装了

Syntax OK

特别说明:以上两种情况不能同时存在,否则会有冲突

3.3 mod_deflate安装


cd  /root/tools/httpd-2.2.25/modules/filters

/application/apache/bin/apxs -c -a -i mod_deflate.c

ll /application/apache/modules/mod_deflate.so

#如果提示冲突,要把/application/apache/conf/httpd.conf文件中,LoadModule  deflate_module  modules/mod_deflate.so这句命令注释掉。

3.4 mod_deflate应用


<ifmodule mod_deflate.c>

DeflateCompressionLevel  9

SetOutputFilter DEFLATE

DeflateFilterNote  Input  instream

DeflateFilterNote  Output  outstream

DeflateFilterNote  Ratio  ratio

#Logformat  ‘  “%r”  %{outstream}n/%{instream}n  (%{ratio}n%%)’ deflate

#CustomLog  logs/deflate_log.log deflate

</ifmodule>

#把以上这段代码嵌入到/application/apache/conf/extra/httpd-vhosts.conf的/var/html/www配置内容里面(也可以配置到全局目录里面)

<VirtualHost *:80>

ServerAdmin [email protected]

DocumentRoot "/var/html/www"

ServerName www.etiantian.com

ServerAlias etiantian.com

ErrorLog "logs/www.etiantiancom-error_log"

CustomLog "logs/www.etiantiancom-access_log" common

<ifmodule mod_deflate.c>

DeflateCompressionLevel  9

SetOutputFilter DEFLATE

DeflateFilterNote  Input  instream

DeflateFilterNote  Output  outstream

DeflateFilterNote  Ratio  ratio

#Logformat  ‘  “%r”  %{outstream}n/%{instream}n  (%{ratio}n%%)’ deflate

#CustomLog  logs/deflate_log.log deflate

</ifmodule>

</VirtualHost>

测试:把老师的test_deflate.tar.gz压缩包上传到/var/html/www下,然后解压,不需要做任何移动。打开Firefox开发专版,访问192.168.1.4/test/deflate.html,打开firebug,在YSlow中可以看到测试结果。

4 mod_expires缓存功能

Expire其实就是通过header报文来指定特定类型的文件在浏览器中的缓存时间。大多数的图片,flash在发布后都不是需要经常修改的,做了缓存以后这样的浏览器以后就不需要再从服务器下载这些文件而是直接从缓存中读取,这样再访问页面的速度会大大加快。


在刚才的mod_deflate模块配置内容下面加入以下配置:

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 plus12  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"

[[email protected] www]# curl -I 192.168.1.4/01.jpg

HTTP/1.1 200 OK

Date: Sun, 17 Nov 2013 03:51:45 GMT

Server: Apache/2.2.25 (Unix) DAV/2 PHP/5.3.10

Last-Modified: Sun, 07 Nov 2010 12:20:20 GMT

ETag: "40904-486f3-4947587f66900"

Accept-Ranges: bytes

Content-Length: 296691

Cache-Control: max-age=31104000

Expires: Wed, 12 Nov 2014 03:51:45 GMT

Vary: Accept-Encoding

Content-Type: image/jpeg

5 更改Apache默认用户

创建一个用户例如Apache(最好起一个不常用的名字),用于子进程和子线程。


useradd  -M  -s /sbin/nologin  apache

vi  /application/apache/conf/httpd.conf

User  apache

Group  apache

6  worker模式提升并发数

7  屏蔽apache版本等敏感信息


(1) 修改httpd.conf文件,打开httpd-default.conf模块

(2) 修改httpd-default.conf文件,ServerSignature Off以及ServerTokens Prod之后apachectl graceful使设置生效

8 apache目录文件权限设置(root,目录755,文件644)


[[email protected] html]# ll

总计 12

drwxr-xr-x 2 root root 4096 09-03 18:51 bbs

drwxr-xr-x 5 root root 4096 11-12 01:53 blog

drwxr-xr-x 3 root root 4096 11-17 11:43 www

提示:在网站架构中,应把资源文件,包括用户上传的图片,福建等和程序分离,最好把上传程序也分离,这样就可以从容授权了。

9 开启httpd-mpm.conf增加连接数

10 apache防盗链功能

11 禁止目录Index


Option  FollowSymLinks 这一个参数去掉Index选项

12 禁止用户覆盖(重载)


AllowOverride None  #禁止用户覆盖(重载)

#加快服务器速度,因为它不再为每个请求寻找每个目录访问控制问价(.htaccess)

13 关闭CGI


ScriptAlias /cgi-bin/ "/application/apache2.2.25/cgi-bin/"

<Directory "/application/apache2.2.25/cgi-bin">

AllowOverride None

Options None

Order allow,deny

Allow from all

</Directory>

删除以上内容

14 避免使用.htaccess文件(分布式配置文件)

首先从性能上,就应该避免使用.htaccess文件

15 apache安装模块


(mod_evasive20防DDOS、mod_limitipconn(针对单站点)配置、mod_security防SQL注入等

makejail   http://www.floc.net/makejail

是一个自动把建立jail所需要的程序放到jail内的软件

mod_security   http://www.modsecurity.org

是apache的一个模块,他有请求过滤,日志审计等功能,可以防止SQL Injection,跨站脚本攻击,很不错的一个模块

16 正确途径取得源代码,勤打apache补丁

17 apache日志授予root700权限


chown  -R root.root logs

chmod  -R 700 logs

18 系统内核参数优化

19 禁止PHP解析指定站点目录

20 使用tmps文件系统替代频繁访问的目录

21 尽可能减少HTTP请求数

22 使用CDN做网站加速

23 apache程序架构优化


1) 程序页面服务器  2)图片附件服务器  3)上传服务器  三者的功能尽量分离

a) 分离最佳方式是分别使用独立的服务器(需要程序支持)

b) 次选方案在前端负载均衡器通过haproxy/nginx根据目录或扩展名请求后面对应的服务器

时间: 2024-12-24 11:06:18

Linux课程笔记 Apache的优化的相关文章

Linux课程笔记 Apache服务Forbidden 403故障分析

403 Forbidden资源不可用.服务器理解客户的请求,但拒绝处理它.通常由于服务器上文件或目录的权限设置导致. 原因1(重要) apache配置文件中没有对站点目录的权限许可配置,这通常是在初始安装apache后,更改了默认的apache站点目录导致.如编译安装apache(假定安装目录为/application/apache2.2.23/)后,将站点目录更改为其他的路径:/var/html,则会报403错误 原因2 站点目录下无首页文件,而apache的配置又禁止了目录浏览,就会提示40

Linux课程笔记 Apache常用模块的介绍

1. mod_expires模块介绍 1.1 mod_expires介绍 mod_expires允许通过apache配置文件控制HTTP的”Expires:”和”Cache-Control:”头内容,这个模块控制服务器应答时的Expires头内容和Cache-Control头的max-age指令.有效期可以设置为相对于源文件的最后修改时刻或客户端的访问时刻. 这些HTTP头向客户端表明了内容的有效性和持久性.如果客户端本地有缓存,则内容就可以从缓存而不是从服务器读取.然后客户端会检查缓存中的副本

Linux课程笔记 Day08 课上内容总结 Apache及Raid技术

一 http基础概念 1.1   静态网页的特点: (1)       静态网页每个页面都有一个固定的URL,而且URL一般以.htm..html..shtml等形式为后缀,而且地址中不含有问号”?” (2)       静态网页是实实在在保存在服务器上的文件,每个都是一个独立的文件 (3)       静态网页的内容相对稳定,容易被搜索引擎收录(优点) (4)       静态网页没有数据库的支持,在网站制作和维护方面工作量较大(缺点) (5)       静态网页的交互性较差,在功能方面有较

Linux课程笔记 Day02 课程内容总结

一 配置优化Centos5.XLinux系统 1.添加一个普通用户账号 生产环境,一般要避免直接使用root账户操作. 一次性设置密码小技巧:echo “qbf1932” | passwd –stdin  qinbf && history –c 2.  CentOS安装完毕,首先应该修改更新源,并升级到最新系统 国内速度较快的的常用更新源如下: —http://mirrors.sohu.com/ —http://mirrors.163.com/ 法一:将已经编辑好的CentOS-Base.

Linux课程笔记 Day07 课上内容总结 SSH和rsync

一. SSH 1.1    SSH介绍 SSH是Secure Shell Protocol的简称.在进行数据传输之前,SSH先对联机数据包通过加密技术进行加密处理,加密后再进行数据传输.确保了传递的数据安全.SSH是专为远程登录会话和其他网络问题提供安全性的协议. 在默认状态下,SSH协议提供两个服务功能:一个是提供类似telnet远程链接服务器的服务,即上面提到的SSH服务:另一个是类似FTP服务的stp-server,借助SSH协议来传输数据,提供更安全的FTP服务. 特别提醒:SSH客户端

Linux课程笔记 Day01 课程内容总结

系统安装: 引导项简单介绍:在“boot:”提示后: 直接回车(Enter)——图形界面安装模式 linux text——字符界面安装模式 linux askmethod——提示用户选择安装方法(例如:nfs.ftp.http远程安装) linux  rescue——救援模式,如/etc/fstab文件损坏后的修复 memtest86——检测内存 (一)  选择安装方式 输入linux text进入字符安装界面模式,特点是方便.迅速. (二)  是否对光盘进行检查 一般不需要对光盘进行检查,可选

Linux课程笔记 Nginx介绍

1  Nginx介绍 与Apache相比,在性能上,nginx占用更少的系统资源,特定的场景应用(静态数据)能支持更多的并发连接,达到更高的访问效率:在功能上,Nginx是一个优秀的反向代理和负载均衡服务器,也可以作为缓存服务器. 2  Nginx有点总结: 高并发:能支持1-2万甚至更多的并发连接(静态小文件环境下) 内存消耗少:在3万并发连接下,开启的10个Nginx进程消耗不到200M内存 可以做HTTP反向代理,即负载均衡功能,相当于专业的haproxy软件或lvs的功能 内置对RS服务

Linux 课程笔记 Nginx深入应用实践

1 关于Nginx模块 Nginx使用不同的模块实现不同的功能,主要有2组重要的模块: (1) Nginx core modules(必需的) 包括Main.Events (2) Standard  HTTP modules(虽然不是必需的,但是缺省都会安装,不建议改动) 典型的包括 Core.Access.FastCGI.Gzip.Log.Proxy.Rewrite.Upstream 2 Nginx目录结构 /application/nginx |-- client_body_temp |--

linux 学习笔记 APACHE安装总结

#cd /usr/local #mkdir APACHE #tar zxvf /usr/etc/DEV/httpd-2.2.9.tar.gz #mv httpd-2.2.9/* . #rm -rf httpd-2.2.9/ #./configure <---prefix参数 含义:把文件放在/opt/APACHE/apache文件夹之下卸载时只要删除这个文件即可 --prefix =/opt/APACHE/apache --with-included-apr --enable-so --enab