apache2日常笔记

2016-10-21

系统环境:Ubuntu 14.04、apache2

配置缓存

1.进入apache模块目录:

cd /etc/apache2/mods-enabled

2.给expires、headers两个模块建立软链:

ln -s ../mods-available/expires.load
ln -s ../mods-available/headers.load

3.建立配置文件、以及软链:

ln -s ../mods-available/expires.conf
ln -s ../mods-available/headers.conf

4.编辑配置文件:

cat ../mods-available/expires.conf

<IfModule mod_expires.c>
ExpiresActive On  
ExpiresByType text/html "now plus 1 day"  
ExpiresByType text/css "now plus 1 month"  
ExpiresByType application/x-javascript "now plus 5 day"  
ExpiresByType image/jpeg "access plus 1 month"  
ExpiresByType image/gif "access plus 1 month"  
ExpiresByType image/bmp "access plus 1 month"  
ExpiresByType image/x-icon "access plus 1 month"  
ExpiresByType image/png "access plus 1 month"  
ExpiresByType application/x-shockwave-flash "access plus 1 month"  
</IfModule>

cat ../mods-available/headers.conf

<IFModule mod_headers.c>
Header add Pragma "cache"
</IFModule>

5.重启apache2:

/etc/init.d/apache2 restart

内存优化

利用mpm_prefork模块调整内存占用:

apt-get install apache2-mpm-prefork

比如需要对低内存设备优化:

1.修改:/etc/apache2/mods-enabled/mpm_prefork.conf

<IfModule mpm_prefork_module>
       StartServers              1
       MinSpareServers           1
       MaxSpareServers           10
       MaxRequestWorkers         150
       MaxConnectionsPerChild    2
</IfModule>

StartServers 启动时建立的子进程数量

MinSpareservers和MaxSpareServers分别设置空闲子进程的最小和最大数量

MaxConnectionsPerChild 子进程最大连接数 (超过了释放内存)

2.修改:/etc/apache2/apache2.conf

KeepAlive off

KeepAlive 配置的含义:

对于HTTP/1.1的客户端来说,将会尽量的保持客户的HTTP连接,通过一个连接传送多份HTTP请求响应。

这样对于客户端来说,可以提高50%左右的响应时间,而于服务器端来说则降低了更多个连接的开销。

不过这个依赖于客户端是否想保持连接。IE默认是保持连接的,当你打开100个图片的网站时,IE有可能只打开2个连接,通过这两个连接传送数据,而不是开100个连接。

在 Apache 服务器中,KeepAlive 是一个布尔值,On 代表打开,Off 代表关闭,这个指令在其他众多的 HTTPD 服务器中都是存在的。

KeepAliveTimeout 为持久连接保持的时间,也就是说,在这此连接结束后开始计时,多长时间内没有重新发送HTTP请求,就断掉连接。默认设置为5秒,这个值可以大点,但不能太大,否则会出现同时等候过多连接,导致多的内存被占用。

设置.htaccess后出现页面500错误

查看apache2的错误日志出现:.htaccess: order not allowed here

解决办法:

在apache的配置文件中修改AllowOverride的属性为all:

AllowOverride All

表示允许用户自定义.htaccess文件。

禁止用户访问特定文件

编辑.htaccess

<Files file.zip>
order allow,deny
deny from all 
</Files>