`
jgsj
  • 浏览: 1027957 次
文章分类
社区版块
存档分类
最新评论

Apache的常用配置

阅读更多


Apache采用IBM HTTPServer,内核为Apache/2.0.47

Server version: IBM_HTTP_Server/6.1.0.13 Apache/2.0.47

查看IBM HTTPServer的版本的命令

apache.exe -V

./apachectl -V 4

注:IBM HTTPServer是包装Apache后增强了部分功能

普通Apache下的版本查看命令

./apachectl –v

若新配置Apache,建议安装最新版本的Apache

目前最新版本:2.2.26,可用Apache网站提供源码在linux下进行编译

最新window的安装包:2.2.25

注:Apache已经推出2.4的版本,对静态内容响应比2.2的版本快。

主要针对以下变更

1、trace方法的漏洞

2、定义了404和403错误显示页面,代替了原来的默认页面

3、取消了apache的返回显示签名,取消错误页面时的版本显示。

4、取消的目录内容列出的配置。

5、Apache的内容输出压缩配置。

6、Apache的status监控时默认地址的修改。

7、Apache虚拟主机配置

8、Apache默认的线程数的调整 含window和linux下

9、Apache循环日志的设置

10、Linux下Apache日志定时清除设置

11、Apache的默认参数修改

12、Apache的proxy功能启用

13、Apache的缓存功能设置

在安装apache后,需要对默认配置进行修改,以增强一下默认的安全性配置。

每个详细的配置过程如下:

1、针对Apache2.0.55以前的版本,需要进行如下修改

放开rewrite模块

LoadModule rewrite_modulemodules/mod_rewrite.so

增加如下配置

RewriteCond %{REQUEST_METHOD} ^TRACE

RewriteRule .* - [F]

若是Apache 2.0.55版本以上的apache,则需在http.conf中增加如下配置

TraceEnableOff

2、 定义404和403错误显示页面

在虚拟主机的配置处,增加如下配置,并将对应的错误页面拷贝到根目录下

ErrorDocument 404 /404.html

ErrorDocument 403 /403.html

以覆盖默认的配置

3、 取消apache的版本返回显示签名

在http.conf中搜索如下配置,将

ServerSignature On 改为 ServerSignature Off

目前版本apache均是将配置分散到多个conf文件中,可修改httpd-default.conf文件中的配置,注意在http.conf文件中将

#Include conf/extra/httpd-default.conf

修改为

Include conf/extra/httpd-default.conf,将#号取消

4、 取消目录内容列出配置

方法一,修改 httpd.conf配置文件,查找Options Indexes FollowSymLinks,修改为 Options -Indexes;

方法二,在www 目录下的修改.htaccess配置文件,加入Options -Indexes。 (推荐)

apache的配置是在虚拟主机的配置中如下配置

<Directory"/xxx/www">

Options –IndexesFollowSymLinks

AllowOverride None

Orderallow,deny

Allow fromall

</Directory>

注意将FollowSymLinks清除掉,并将Indexs改为 -Indexs

5、 Apache的内容输出压缩配置

按如下配置进行页面压缩配置

LoadModuledeflate_module modules/mod_deflate.so

<IfModulemod_deflate.c>

SetOutputFilter DEFLATE

SetEnvIfNoCase Request_URI.(?:gif|jpe?g|png|bmp|swf|cab)$ no-gzip dont-vary

SetEnvIfNoCase Request_URI.(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary

SetEnvIfNoCase Request_URI.(?:pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary

# SetEnvIfNoCase Request_URI/.(gif|jpg|cab|jpe?g|exe|bmp|mp3|rar|zip|swf|png)$ no-gzip dont-vary

AddOutputFilterByType DEFLATEtext/html text/plain text/xml text/css text/javascript

AddOutputFilterByType DEFLATEapplication/ms* application/vnd* application/postscript application/javascriptapplication/x-javascript

SetEnvIf User-Agent ^Mozilla/4 gzip-only-text/html

SetEnvIf User-Agent ^Mozilla/4/.0[678]no-gzip

SetEnvIf User-Agent \bMSIE !no-gzip

SetEnvIf User-Agent \bMSIE!gzip-only-text/html

# SetEnvIfNoCase Request_URI/.(gif|jpg|cab|jpe?g|exe|bmp|mp3|rar|zip|swf|png)$ no-gzip dont-vary

DeflateCompressionLevel 9

</IfModule>

6、 Apache的status监控时默认地址的修改

Apache中的默认设置为

<Location /server-status>

SetHandler server-status

Order deny,allow

# Deny from all

Allow from .localhost

</Location>

此种设置不安全,如果启用status监控需要修改默认地址,若启动虚拟主机,则在每个虚拟主机节点中进行配置,方有效,即在

<VirtualHost *:80>

<Location /test-server-status>

SetHandler server-status

Order deny,allow

# Deny from all

Allow from .localhost

</Location>

</VirtualHost >

之间配置

若无虚拟主机则正常配置

<Location /test-server-status>

SetHandler server-status

Order deny,allow

# Deny from all

Allow from .localhost

</Location>

将server-status的默认值需要修改一下,避免此处的安全漏洞

注:若要启动扩展状态监控

即 配置

ExtendedStatus On

注意:

ExtendedStatus On不能配置在单独的虚拟主机节点内,需要在httpd.conf中配置

可参考: httpd-info.conf文件中的配置

7、 Apache的虚拟主机配置

NameVirtualHost *:80

<VirtualHost *:80>

ServerName www.test.cn

ServerAlias www.test.edu.cn

DocumentRoot /test/www

AddDefaultCharset Off

<Directory"/test/www">

Options-Indexes

AllowOverride None

Orderallow,deny

Allow fromall

</Directory>

ErrorDocument404 /404.html

ErrorDocument403 /403.html

</VirtualHost>

虚拟主机按以上进行配置,对于新版本的apache注意将

# Virtual hosts

#Include conf/extra/httpd-vhosts.conf

处进行修改

Includeconf/extra/httpd-vhosts.conf

在httpd-vhosts.conf文件中进行虚拟主机的配置

8、 Apache默认线程数调整

对2.2版本的apache,在httpd.conf文件中将

# Include conf/extra/ httpd-mpm.conf修改为

Include conf/extra/ httpd-mpm.conf

并在此文件中寻找到此处

# WinNT MPM

# ThreadsPerChild:constant number of worker threads in the server process

#MaxRequestsPerChild: maximum number ofrequests a server process serves

<IfModulempm_winnt_module>

ThreadLimit 2000

ThreadsPerChild 2000

MaxRequestsPerChild 100

</IfModule>

此处是将线程的限制修改到2000,注意window修改2000的限制在window下会报一些错误,因为window下默认达不到2000,一般只能到1912左右,要想突破2000的限制,需要使用ThreadLimit指令

Linux下需要对以下模块设置,linux下Apache默认工作模式是prefork

可通过 ./apachectl –l来查看apache的工作模式

Window下通过 httpd.exe –l来查看

注:需要在apache的安装目录下的bin目录中

# prefork MPM

# StartServers: number of server processesto start

# MinSpareServers: minimum number of serverprocesses which are kept spare

# MaxSpareServers: maximum number of serverprocesses which are kept spare

# MaxClients: maximum number of serverprocesses allowed to start

# MaxRequestsPerChild: maximum number ofrequests a server process serves

<IfModule mpm_prefork_module>

StartServers 5

MinSpareServers 5

MaxSpareServers 10

MaxClients 150

MaxRequestsPerChild 0

</IfModule>

Linux下若调整线程数则调整以上数字,重点调整MaxClients

配置样例,需要根据机器的配置进行调整:

<IfModulempm_prefork_module>

StartServers 10

MinSpareServers 10

MaxSpareServers 20

MaxClients 1500

MaxRequestsPerChild 10000

</IfModule>

9、 Apache循环日志配置

Linux下的配置样例:

/usr/local/apache 为apache的安装目录,根据实际情况修改

ErrorLog "| /usr/local/apache/bin/rotatelogs /usr/local/apache/logs/%Y_%m_%d_test-error.log86400 480"

CustomLog "logs/test-access.log" common

Window下配置

ErrorLog "| bin/rotatelogs.exe logs/%Y_%m_%d_test-error.log 86400480"

10、Linux下Apche日志定时清除

按以下配置即可

1、root用户登录,检查crond服务的运行情况

[root@CentOS-APP2]#service crond status

crond (pid 3698) 正在运行...

若没运行,则

service crondstart

2、在/usr/local/testweb下编写执行脚本

vi clean-log

拷贝如下脚本:

#! /bin/sh

#cd $(dirname $0)|| exit 1

logdir=/usr/local/apache/logs/test-com/

cd ${logdir}

declare -ifilesum=`ls test_access* |wc -l`

declare -idelnum=$filesum-30

#echo ${delnum}

if [ "${delnum}"-ge 1 ]; then

rm -rf `ls -tr test_access* | head -${delnum}`

fi

declare -i filesumerr=`lstest_error* |wc -l`

declare -idelnumerr=$filesumerr-30

if [ "${delnumerr}"-ge 1 ]; then

rm -rf `ls -tr test_error* | head-${delnumerr}`

fi

拷贝脚本时,请注意日志目录的实际位置和要清理的日志文件的命名格式,需要保持一致

这里的日志目录:

/usr/local/apache/logs/test-com/

要清理的日志格式:

test_access_20131223.log

test_error_20131223.log

设定要清理的日志数量,设定为30,超过30个日志文件则清理

3、设定运行权限

cd /usr/local/testweb

chmod 755clean-log

4、设定定时运行

设定为每月30日晚1点30分定时执行

30 1 30 * */usr/local/testweb/clean-log

/usr/local/testweb/clean-log 为编写好的日志清除脚本

设定方法:

root用户登录后执行:

crontab -e

打开一个文件,用vi的方式进行编辑

输入

30 1 30 * */usr/local/testweb/clean-log

然后:wq退出保存

可在/var/spool/cron/目录下看到此文件

root

与所设定的用户名一致

5、执行

service crondreload 重新加载配置运行

6、测试

测试时可以执行

crontab -e 编辑设定的文件,增加如下配置,每分钟定时,可先修改脚本,将日志文件数减少,如将30变为3

*/1 * * * */usr/local/testweb/clean-log

可以在/usr/local/apache/logs/test-com/目录下用vi命令按test_access_20131202.log的文件命名格式来建若干个空文件,以测试是否可定时删除文件

可以tail -n 100 /usr/spool/mail/root 查看错误

tail -f /var/log/cron 查看运行日志

11、Apache默认参数修改

修改此文件

Include conf/extra/httpd-default.conf

作如下修改:

lServerTokensFull 修改为ServerTokens Prod

lTimeout300 可修改为 Timeout 100

lMaxKeepAliveRequests100 可根据机器配置适当加大

12、Apache的proxy功能启用

启用代理需要在httpd.conf文件放开以下两个模块

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_http_module modules/mod_proxy_http.so

然后启用虚拟主机,在此句之后

NameVirtualHost*:80

增加如下:

<VirtualHost *:80>

ProxyPreserveHost On

ProxyPass / http://172.16.0.2:9090/portal/

ProxyPassReverse/ http://172.16.0.2:9090/portal/

ServerName test.xxx.cn

ServerAlias test.xxx.edu.cn

</VirtualHost>

13、Apache的缓存功能设置

Apache的缓存功能需要开启以下模块

#LoadModule cache_module modules/mod_cache.so

#LoadModule mem_cache_module modules/mod_mem_cache.so

缓存有两种:1、内存中缓存;2、磁盘缓存

此处讲解内存中缓存

配置样例:

<IfModulemod_cache.c>

<IfModule mod_mem_cache.c>

CacheEnable mem /image #要缓存目录

CacheEnable mem /images

CacheEnable mem /js

CacheEnable mem /style

CacheEnable mem /css

CacheEnable mem /script

CacheEnable mem /swf

CacheEnable mem /file

MCacheMaxObjectCount 20000 #缓存对象数量

MCacheMaxObjectSize 1048576 #缓存对象最大大小 字节

MCacheMaxStreamingBuffer 65536

MCacheMinObjectSize 10 #缓存对象最小大小 字节

MCacheRemovalAlgorithm LRU #缓存的算法

MCacheSize 2097152 #缓存的大小 kb

CacheMaxExpire 14400 #缓存最大过期时间

CacheDefaultExpire 14400

</IfModule>

</IfModule>

配置说明:

1,CacheEnablemem /images 缓存images下面的内容,这里的 mem只是一个缓存类型,指示mod_cache使用内存的存储管理器通过实施mod_mem_cache 。缓存类型disk指示mod_cache使用基于磁盘的存储管理的实施mod_disk_cache 。缓存类型,fd指示mod_cache使用文件描述符缓存实施mod_mem_cache

2,MCacheSize最大内存使用量,插入在缓存和对象大小的对象是大于剩余内存,将被删除,直到新的对象可以被缓存。 被删除的对象选择使用指定的算法MCacheRemovalAlgorithm

3,MCacheRemovalAlgorithm缓存算法:

LRU (最近最少使用)

LRU删除文件,没有时间最长的被访问的。

GDSF(GreadyDual尺寸)

GDSF分配一个优先的文件缓存文件的费用的基础上,缓存大小。以最低的优先权文件被删除第一次。

4,MCacheMaxObjectCount最大缓存对像个数

5,MCacheMaxObjectCount最大缓存对像字节数

6,MCacheMinObjectSize最小缓存对像字节数

7,CacheMaxExpire最大缓存结止时间

8,CacheDefaultExpire 默认缓存结止时间

9,CacheDisable/php 不缓存php下面的内容

分享到:
评论

相关推荐

    apache常用配置

    ### Apache常用配置详解 #### 一、Apache简介与安装 Apache是全球最广泛使用的Web服务器软件之一,由Apache Software Foundation开发并维护。它提供了一系列功能强大的特性,包括高可定制性、良好的性能以及广泛的...

    Apache常用配置教程

    在Windows上,可以通过下载Apache的.exe安装文件(如压缩包中的`Apache常用配置.exe`)进行安装。安装完成后,可以通过命令行或服务管理器启动和停止Apache服务。 2. **配置文件** Apache的主要配置文件是`httpd....

    Apache服务配置文件讲解

    其配置文件httpd.conf是服务器配置的核心,其中涉及的参数众多,本文将挑选一些常用参数进行讲解。 1. 连接类参数 - TimeOut参数:用于设置Apache等待请求失败的时间,具体包括接收GET请求的总时间、两个TCP包之间...

    apache常用jar包

    在这个"apache常用jar包"中,我们看到了一些关键的组件,主要用于HTTP通信和邮件处理。下面将详细介绍这些jar包及其在IT领域的应用。 1. **httpcomponents-client-4.2.3-bin.tar.gz**:这是Apache HttpComponents...

    Apache 配置文件中文版

    对于初次接触Apache的新手来说,掌握配置文件的基本结构与常用设置至关重要。本篇内容将根据提供的部分Apache配置文件内容进行详细解读。 #### 二、基本概念介绍 1. **全局环境**:Apache配置文件的第一部分通常是...

    Apache+PHP配置要点

    为了告诉Apache使用哪个`php.ini`文件作为PHP的配置文件,我们需要设置`PHPIniDir`指令: ```apacheconf PHPIniDir "C:/php5" ``` 这里的路径应该是`php.ini`文件所在的目录。 **1.4 设置文档根目录** 文档根...

    ubuntu apache+svn 常用配置

    以上就是Ubuntu上Apache+SVN的基本配置和一些常用设置。根据实际需求,可能还需要进行更详细的调整,如防火墙规则、日志级别、访问控制等。理解这些配置将有助于在项目开发过程中实现高效、安全的版本控制。

    Apache配置中文版

    "Apache配置中文版"提供了详细的指导,帮助用户理解和设置Apache服务器,使其能根据需求运行网站和服务。下面将深入探讨Apache配置的相关知识点。 1. **Apache基本结构与配置文件**: Apache的配置主要通过修改`...

    Apache MySQL PHP安装与配置

    在配置方面,我们需要修改Apache的配置文件httpd.conf,添加PHP模块的配置,并设置正确的文件类型关联。对于MySQL,我们需要进行数据库的初始化设置,包括设置root用户的密码,并创建数据库和表。PHP的配置则包括...

    php apache mysql配置详解

    在IT行业中,PHP、Apache和MySQL是构建动态网站和Web应用程序的常用技术栈,被称为LAMP(Linux、Apache、MySQL、PHP)架构。本篇文章将深入解析如何配置这三者,以便初学者能够理解并成功搭建环境。 首先,Apache是...

    详解Apache下htaccess文件常用配置.pdf

    详解Apache下htaccess文件常用配置.pdf

    apache配置文件详解

    ### Apache配置文件详解 #### 一、Apache简介 Apache是一款开放源码的Web服务运行平台,在几乎所有常用的计算机操作系统中都有其身影,因其多平台、安全、稳定的特点而被广泛使用,成为当前最主流的Web服务器软件...

    Apache服务器配置与使用工作笔记.pdf

    - 配置文件(httpd.conf或apache2.conf)的结构,包括全局设置、虚拟主机、指令覆盖等。 - 指令的作用和应用场景,例如Listen、ServerAdmin、DocumentRoot、Directory等。 - 用户目录和日志文件的设置方法,便于...

    Ubuntu下Apache配置

    在Ubuntu下配置Apache涉及多个方面,从安装基础软件包、配置环境到具体功能设置,每个环节都需谨慎操作。掌握上述知识点,不仅能帮助开发者和管理员更高效地部署Web应用,还能提升系统的安全性和稳定性。在实践中...

    apache+tomcat集群配置

    2. **使用mod_proxy和mod_proxy_ajp模块**:这种方式是现代Apache配置中常用的负载均衡方法之一,通过Apache的模块来实现对后端多个Tomcat服务器的负载均衡。 后续篇章将会深入讨论更高级的话题,包括正向与反向...

    Apache配置详解(最好的APACHE配置教程)

    下面我们将深入探讨Apache配置的一些核心概念和常用指令。 **1. **`ServerRoot`**:** `ServerRoot`指令定义了Apache服务器的基础安装目录,通常包含配置文件、日志文件和其他相关资源。在示例中,Apache的根目录...

    Apache Web服务器配置与使用工作笔记

    ### Apache Web服务器配置与使用工作笔记 #### 一、Apache Web服务器简介 Apache HTTP Server(简称Apache)是一款开放源码的Web服务运行平台,在互联网上有着广泛的使用。它是由Apache软件基金会的一个开源项目...

    tomcat、apache、websphere配置

    【描述】:本文将深入探讨三种流行的Web服务器——Tomcat、Apache和WebSphere的配置过程,帮助读者理解和掌握它们的基本设置与管理。 【标签】:“WebSphere” 【正文】: Apache HTTP Server,通常简称为Apache...

Global site tag (gtag.js) - Google Analytics