首頁 資料庫 mysql教程 apache2.2配置httpd.conf

apache2.2配置httpd.conf

Jun 07, 2016 pm 03:49 PM
ht 配置

###=========httpd.conf begin=================== ##Apache主配置文件 ##设置服务器的基础目录,默认为Apache安装目录 ServerRoot /usr/local/apache-2.2.6 ##设置服务器监听的IP和端口 Listen 80 ##设置管理员邮件地址 ServerAdminwebmaster@foxbb.com ##设

###=========httpd.conf begin===================
##Apache主配置文件
##设置服务器的基础目录,默认为Apache安装目录
ServerRoot "/usr/local/apache-2.2.6"
##设置服务器监听的IP和端口
Listen 80
##设置管理员邮件地址
ServerAdminwebmaster@foxbb.com
##设置服务器用于辨识自己的主机名和端口号
ServerNamewww.foxbb.com:80
###设置动态加载的DSO模块
##如果需要提供基于文本文件的认证,加载此模块,否则注释掉
LoadModule authn_file_module modules/mod_authn_file.so
##如果需要提供基于DBM文件的认证,加载此模块,否则注释掉
#LoadModule authn_dbm_module modules/mod_authn_dbm.so
##如果需要提供匿名用户认证,加载此模块,否则注释掉
#LoadModule authn_anon_module modules/mod_authn_anon.so
##如果需要提供基于SQL数据库的认证,加载此模块,否则注释掉
#LoadModule authn_dbd_module modules/mod_authn_dbd.so
##如果需要在未正确配置认证模块的情况下简单拒绝一切认证信息,加载此模块,否则注释掉
LoadModule authn_default_module modules/mod_authn_default.so
##此模块提供基于主机名、IP地址、请求特征的访问控制,Allow、Deny指令需要,推荐加载。
LoadModule authz_host_module modules/mod_authz_host.so
##如果需要使用纯文本文件为组提供授权支持,加载此模块,否则注释掉
#LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
##如果需要提供基于每个用户的授权支持,加载此模块,否则注释掉
LoadModule authz_user_module modules/mod_authz_user.so
##如果需要使用DBM文件为组提供授权支持,加载此模块,否则注释掉
#LoadModule authz_dbm_module modules/mod_authz_dbm.so
##如果需要基于文件的所有者进行授权,加载此模块,否则注释掉
#LoadModule authz_owner_module modules/mod_authz_owner.so
##如果需要在未正确配置授权支持模块的情况下简单拒绝一切授权请求,加载此模块,否则注释掉
LoadModule authz_default_module modules/mod_authz_default.so
##如果需要提供基本的HTTP认证,加载此模块,否则注释掉,此模块至少需要同时加载一个认证支持模块和一个授权支持模块
LoadModule auth_basic_module modules/mod_auth_basic.so
##如果需要提供HTTP MD5摘要认证,加载此模块,否则注释掉,此模块至少需要同时加载一个认证支持模块和一个授权支持模块
#LoadModule auth_digest_module modules/mod_auth_digest.so
##此模块提供文件描述符缓存支持,从而提高Apache性能,推荐加载,但请小心使用
LoadModule file_cache_module modules/mod_file_cache.so
##此模块提供基于URI键的内容动态缓存(内存或磁盘),从而提高Apache性能,必须与mod_disk_cache/mod_mem_cache同时使用,推荐加载
LoadModule cache_module modules/mod_cache.so
##此模块为mod_cache提供基于磁盘的缓存管理,推荐加载
LoadModule disk_cache_module modules/mod_disk_cache.so
##此模块为mod_cache提供基于内存的缓存管理,推荐加载
LoadModule mem_cache_module modules/mod_mem_cache.so
##如果需要管理SQL数据库连接,为需要数据库功能的模块提供支持,加载此模块,否则注释掉(推荐)
#LoadModule dbd_module modules/mod_dbd.so
##此模块将所有I/O操作转储到错误日志中,会导致在日志中写入及其海量的数据,只建议在发现问题并进行调试的时候使用
#LoadModule dumpio_module modules/mod_dumpio.so
##如果需要使用外部程序作为过滤器,加载此模块(不推荐),否则注释掉
#LoadModule ext_filter_module modules/mod_ext_filter.so
##如果需要实现服务端包含文档(SSI)处理,加载此模块(不推荐),否则注释掉
#LoadModule include_module modules/mod_include.so
##如果需要根据上下文实际情况对输出过滤器进行动态配置,加载此模块,否则注释掉
LoadModule filter_module modules/mod_filter.so
##如果需要服务器在将输出内容发送到客户端以前进行压缩以节约带宽,加载此模块(推荐),否则注释掉
LoadModule deflate_module modules/mod_deflate.so
##如果需要记录日志和定制日志文件格式,加载此模块(推荐),否则注释掉
LoadModule log_config_module modules/mod_log_config.so
##如果需要对每个请求的输入/输出字节数以及HTTP头进行日志记录,加载此模块,否则注释掉
#LoadModule logio_module modules/mod_logio.so
##如果允许Apache修改或清除传送到CGI脚本和SSI页面的环境变量,加载此模块,否则注释掉
LoadModule env_module modules/mod_env.so
##如果允许通过配置文件控制HTTP的"Expires:"和"Cache-Control:"头内容,加载此模块(推荐),否则注释掉
LoadModule expires_module modules/mod_expires.so
##如果允许通过配置文件控制任意的HTTP请求和应答头信息,加载此模块,否则注释掉
LoadModule headers_module modules/mod_headers.so
##如果需要实现RFC1413规定的ident查找,加载此模块(不推荐),否则注释掉
#LoadModule ident_module modules/mod_ident.so
##如果需要根据客户端请求头字段设置环境变量,加载此模块,否则注释掉
LoadModule setenvif_module modules/mod_setenvif.so
##此模块是mod_proxy的扩展,提供Apache JServ Protocol支持,只在必要时加载
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
##此模块是mod_proxy的扩展,提供负载均衡支持,只在必要时加载
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
##如果需要根据文件扩展名决定应答的行为(处理器/过滤器)和内容(MIME类型/语言/字符集/编码),加载此模块,否则注释掉
LoadModule mime_module modules/mod_mime.so
##如果允许Apache提供DAV协议支持,加载此模块,否则注释掉
#LoadModule dav_module modules/mod_dav.so
##此模块生成描述服务器状态的Web页面,只建议在追踪服务器性能和问题时加载
#LoadModule status_module modules/mod_status.so
##如果需要自动对目录中的内容生成列表(类似于"ls"或"dir"命令),加载此模块(会带来安全问题,不推荐),否则注释掉
#LoadModule autoindex_module modules/mod_autoindex.so
##如果需要服务器发送自己包含HTTP头内容的文件,加载此模块,否则注释掉
#LoadModule asis_module modules/mod_asis.so
##如果需要生成Apache配置情况的Web页面,加载此模块(会带来安全问题,不推荐),否则注释掉
#LoadModule info_module modules/mod_info.so
##如果需要在非线程型MPM(prefork)上提供对CGI脚本执行的支持,加载此模块,否则注释掉
#LoadModule cgi_module modules/mod_cgi.so
##此模块在线程型MPM(worker)上用一个外部CGI守护进程执行CGI脚本,如果正在多线程模式下使用CGI程序,推荐替换mod_cgi加载,否则注释掉
#LoadModule cgid_module modules/mod_cgid.so
##此模块为mod_dav访问服务器上的文件系统提供支持,如果加载mod_dav,则也应加载此模块,否则注释掉
#LoadModule dav_fs_module modules/mod_dav_fs.so
##如果需要提供大批量虚拟主机的动态配置支持,加载此模块,否则注释掉
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
##如果需要提供内容协商支持(从几个有效文档中选择一个最匹配客户端要求的文档),加载此模块(推荐),否则注释掉
LoadModule negotiation_module modules/mod_negotiation.so
##如果需要指定目录索引文件以及为目录提供"尾斜杠"重定向,加载此模块(推荐),否则注释掉
LoadModule dir_module modules/mod_dir.so
##如果需要处理服务器端图像映射,加载此模块,否则注释掉
#LoadModule imagemap_module modules/mod_imagemap.so
##如果需要针对特定的媒体类型或请求方法执行CGI脚本,加载此模块,否则注释掉
#LoadModule actions_module modules/mod_actions.so
##如果希望服务器自动纠正URL中的拼写错误,加载此模块(推荐),否则注释掉
LoadModule speling_module modules/mod_speling.so
##如果允许在URL中通过"/~username"形式从用户自己的主目录中提供页面,加载此模块,否则注释掉
#LoadModule userdir_module modules/mod_userdir.so
##此模块提供从文件系统的不同部分到文档树的映射和URL重定向,推荐加载
LoadModule alias_module modules/mod_alias.so
##如果需要基于一定规则实时重写URL请求,加载此模块(推荐),否则注释掉
LoadModule rewrite_module modules/mod_rewrite.so

##设置子进程的用户和组

User daemon
Group daemon

##设置默认WEB文档根目录
DocumentRoot "/usr/local/apache-2.2.6/htdocs"
##设置WEB文档根目录的默认属性

Options FollowSymLinks
AllowOverride None
Order deny,
allow
Deny from all

##设置DocumentRoot指定目录的属性

Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all

##设置默认目录资源列表文件

DirectoryIndex index.html

##拒绝对.ht开头文件的访问,以保护.htaccess文件

Order allow,deny
Deny from all
Satisfy All

##指定错误日志文件
ErrorLog logs/error_log
##指定记录到错误日志的消息级别
LogLevel warn

##定义访问日志的格式
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio

##指定访问日志及使用的格式
CustomLog logs/access_log combined

##设定默认CGI脚本目录及别名

ScriptAlias /cgi-bin/ "/usr/local/apache-2.2.6/cgi-bin/"

##在以线程式MPM(worker)运行的Apache中设置用来与CGI守护进程通信的套接字文件名前缀

Scriptsock logs/cgisock

##设定默认CGI脚本目录的属性

AllowOverride None
Options None
Order allow,deny
Allow from all

##设定默认MIME内容类型
DefaultType text/plain


##指定MIME类型映射文件
TypesConfig conf/mime.types
##增加.Z .tgz的类型映射
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz

##启用内存映射
EnableMMAP on
##使用操作系统内核的sendfile支持来将文件发送到客户端
EnableSendfile on
##指定多路处理模块(MPM)配置文件并将其附加到主配置文件
Include conf/extra/httpd-mpm.conf
##指定多语言错误应答配置文件并将其附加到主配置文件
Include conf/extra/httpd-multilang-errordoc.conf
##指定目录列表配置文件并将其附加到主配置文件
#Include conf/extra/httpd-autoindex.conf
##指定语言配置文件并将其附加到主配置文件
Include conf/extra/httpd-languages.conf
##指定用户主目录配置文件并将其附加到主配置文件
#Include conf/extra/httpd-userdir.conf
##指定用于服务器信息和状态显示的配置文件并将其附加到主配置文件
#Include conf/extra/httpd-info.conf
##指定提供Apache文档访问的配置文件并将其附加到配置文件
#Include conf/extra/httpd-manual.conf
##指定DAV配置文件并将其附加到主配置文件
#Include conf/extra/httpd-dav.conf
##指定与Apache服务自身相关的配置文件并将其附加到主配置文件
Include conf/extra/httpd-default.conf
##指定mod_deflate压缩模块配置文件并将其附加到主配置文件
Include conf/extra/httpd-deflate.conf
##指定mod_expires模块配置文件并将其附加到主配置文件
Include conf/extra/httpd-expires.conf
##指定虚拟主机配置文件并将其附加到主配置文件
#Include conf/extra/httpd-vhosts.conf
##指定SSL配置文件并将其附加到主配置文件
Include conf/extra/httpd-ssl.conf
##SSL默认配置

SSLRandomSeed startup builtin
SSLRandomSeed connect builtin

###==========httpd.conf end===================

 4.3.3 配置多路处理模块(MPM)
编辑多路处理模块配置文件:
vi /usr/local/apache-2.2.6/conf/extra/httpd-mpm.conf
如果使用prefork多路处理模块,按下面的提示修改:
###=============httpd-mpm.conf prefork begin===================
##设置prefork多路处理模块

StartServers 5
MinSpareServers 5
MaxSpareServers 10
ServerLimit    4000
MaxClients 4000
MaxRequestsPerChild 0

###=============httpd-mpm.conf prefork end===================

   指令说明:
  StartServers:设置服务器启动时建立的子进程数量。因为子进程数量动态的取决于负载的轻重,所有一般没有必要调整这个参数。
  MinSpareServers:设置空闲子进程的最小数量。所谓空闲子进程是指没有正在处理请求的子进程。如果当前空闲子进程数少于

MinSpareServers ,那么Apache将以最大每秒一个的速度产生新的子进程。只有在非常繁忙机器上才需要调整这个参数。将此参数设的太大通常

是一个坏主意。
MaxSpareServers:设置空闲子进程的最大数量。如果当前有超过MaxSpareServers数量的空闲子进程,那么父进程将杀死多余的子进

程。只有在非常繁忙机器上才需要调整这个参数。将此参数设的太大通常是一个坏主意。如果你将该指令的值设置为比MinSpareServers

小,Apache将会自动将其修改成"MinSpareServers+1"。
ServerLimit:服务器允许配置的进程数上限。只有在你需要将MaxClients设置成高于默认值256的时候才需要使用。要将此指令的值

保持和MaxClients一样。修改此指令的值必须完全停止服务后再启动才能生效,以restart方式重启动将不会生效。
  MaxClients:用于伺服客户端请求的最大请求数量(最大子进程数),任何超过MaxClients限制的请求都将进入等候队列。默认值是256,

如果要提高这个值必须同时提高ServerLimit的值。笔者建议将初始值设为(以Mb为单位的最大物理内存/2),然后根据负载情况进行动态调整。

比如一台4G内存的机器,那么初始值就是4000/2=2000。
MaxRequestsPerChild:设置每个子进程在其生存期内允许伺服的最大请求数量。到达MaxRequestsPerChild的限制后,子进程将会结

束。如果MaxRequestsPerChild为"0",子进程将永远不会结束。将MaxRequestsPerChild设置成非零值有两个好处:可以防止(偶然的)内存泄漏

无限进行而耗尽内存;
给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。
如果设置为非零值,笔者建议设为10000-30000之间的一个值。
公式:
   MaxClients

  如果使用worker多路处理模块,按下面的提示修改:
###=============httpd-mpm.conf worker begin===================
##设置worker多路处理模块

StartServers 5
ServerLimit 20
ThreadLimit 200
MaxClients 4000
MinSpareThreads 25
MaxSpareThreads 250
ThreadsPerChild 200
MaxRequestsPerChild 0

###=============httpd-mpm.conf worker end===================

指令说明:
StartServers:设置服务器启动时建立的子进程数量。因为子进程数量动态的取决于负载的轻重,所有一般没有必要调整这个参数。
ServerLimit:服务器允许配置的进程数上限。只有在你需要将MaxClients和ThreadsPerChild设置成需要超过默认值16个子进程的时

候才需要使用这个指令。不要将该指令的值设置的比MaxClients 和ThreadsPerChild需要的子进程数量高。修改此指令的值必须完全停止服务

后再启动才能生效,以restart方式重启动将不会生效。
ThreadLimit: 设置每个子进程可配置的线程数ThreadsPerChild上限,该指令的值应当和ThreadsPerChild可能达到的最大值保持一致

。修改此指令的值必须完全停止服务后再启动才能生效,以restart方式重启动将不会生效。
MaxClients:用于伺服客户端请求的最大接入请求数量(最大线程数)。任何超过MaxClients限制的请求都将进入等候队列。默认值

是"400",16 (ServerLimit)乘以25(ThreadsPerChild)的结果。因此要增加MaxClients的时候,你必须同时增加 ServerLimit的值。笔者建议

将初始值设为(以Mb为单位的最大物理内存/2),然后根据负载情况进行动态调整。比如一台4G内存的机器,那么初始值就是4000/2=2000。
MinSpareThreads:最小空闲线程数,默认值是"75"。这个MPM将基于整个服务器监视空闲线程数。如果服务器中总的空闲线程数太少,

子进程将产生新的空闲线程。
MaxSpareThreads:设置最大空闲线程数。默认值是"250"。这个MPM将基于整个服务器监视空闲线程数。如果服务器中总的空闲线程数

太多,子进程将杀死多余的空闲线程。MaxSpareThreads的取值范围是有限制的。Apache将按照如下限制自动修正你设置的值:worker要求其大

于等于 MinSpareThreads加上ThreadsPerChild的和。
ThreadsPerChild:每个子进程建立的线程数。默认值是25。子进程在启动时建立这些线程后就不再建立新的线程了。每个子进程所拥

有的所有线程的总数要足够大,以便可以处理可能的请求高峰。
MaxRequestsPerChild:设置每个子进程在其生存期内允许伺服的最大请求数量。到达MaxRequestsPerChild的限制后,子进程将会结

束。如果MaxRequestsPerChild为"0",子进程将永远不会结束。将MaxRequestsPerChild设置成非零值有两个好处:可以防止(偶然的)内存泄漏

无限进行而耗尽内存;
给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。
如果设置为非零值,笔者建议设为10000-30000之间的一个值。
公式:
ThreadLimit >= ThreadsPerChild
MaxClients MaxSpareThreads >= MinSpareThreads+ThreadsPerChild

 4.3.4 配置Apache服务器默认设置
编辑Apache服务器默认设置文件:
vi /usr/local/apache-2.2.6/conf/extra/httpd-default.conf
按下面的提示修改:
###=============httpd-default.conf begin===================
##Apache默认设置文件
Timeout 300
KeepAlive Off
MaxKeepAliveRequests 100
KeepAliveTimeout 5
UseCanonicalName Off
AccessFileName .htaccess
ServerTokens Prod
ServerSignature Off
HostnameLookups Off
###=============httpd-default.conf end====================
指令说明:
  Timeout:设置服务器在断定请求失败前等待的秒数。默认值300。
KeepAlive:设置是否启用HTTP持久链接,On 代表打开,Off 代表关闭。如果用于同一页面包含大量静态文件的应用,设置为On,以

提高性能;如果用于主要为动态页面的应用,设置为Off,以节约内存资源;如果服务器前跑有squid或者其它七层设备,设置为On。
MaxKeepAliveRequests:限制当启用KeepAlive时,每个连接允许的请求数量。如果将此值设为"0",将不限制请求的数目。笔者建议

将此值设为100-500之间的一个值,以确保最优的服务器性能。
  KeepAliveTimeout:设置持久链接中服务器在两次请求之间等待的秒数。对于高负荷服务器来说,KeepAliveTimeout值较大会导致一些

性能方面的问题:超时值越大,与空闲客户端保持连接的进程就越多。
UseCanonicalName:配置服务器如何确定它自己的域名,可选值为On | Off | DNS。DNS用于为大量基于IP的虚拟主机支持那些古董

级的不提供"Host:"头的浏览器使用。笔者建议设置为Off。
AccessFileName:设置分布式配置文件的名字,默认为.htaccess。如果为某个目录启用了分布式配置文件功能,那么在向客户端返回

其中的文档时,服务器将在这个文档所在的各级目录中查找此配置文件,因此会带来性能问题,笔者建议关闭分布式配置文件功能。
ServerTokens:控制服务器回应给客户端的"Server:"应答头是否包含关于服务器操作系统类型和编译进的模块描述信息,同时还控制

着ServerSignature指令的显示内容。可选值为Full | OS | Minor | Minimal | Major | Prod。笔者建议设置为显示最少信息的Prod。
ServerSignature:配置服务器生成页面的页脚,可选值为On | Off | EMail。采用On会简单的增加一行关于服务器版本和正在伺服的

虚拟主机的ServerName,而EMail设置会额外创建一个指向ServerAdmin的"mailto:"部分。建议使用默认值Off。
HostnameLookups:设置是否启用对客户端IP的DNS查找,可选值为On | Off | Double。DNS查询会造成明显的时间消耗,建议设置为

Off。

 4.3.5 配置mod_deflate压缩模块
mod_deflate模块提供了DEFLATE输出过滤器,允许服务器在将输出内容发送到客户端以前进行压缩,以节约带宽。
编辑mod_deflate压缩模块设置文件:
vi /usr/local/apache-2.2.6/conf/extra/httpd-deflate.conf
按下面的提示修改:
###=============httpd-deflate.conf begin===================
##mod_deflate压缩模块设置文件

##定义deflate默认设置
DeflateMemLevel 9
DeflateWindowSize 15
DeflateBufferSize 8096
DeflateCompressionLevel 8
## 调试时去掉下面5行前的注释符,用以记录压缩日志
#DeflateFilterNote Input instream
#DeflateFilterNote Output outstream
#DeflateFilterNote Ratio ratio
#LogFormat '"%r" %b %{outstream}n/%{instream}n (%{ratio}n%%) "%{User-agent}i"' deflate
#CustomLog logs/deflate_log deflate
## 插入DEFLATE过滤器,以启用输出压缩
 SetOutputFilter DEFLATE
 ## Netscape 4.x 有一些问题,仅压缩txt/html类型
BrowserMatch ^Mozilla/4 gzip-only-text/html
 ## Netscape 4.06-4.08不能处理任何压缩内容,不进行压缩
BrowserMatch ^Mozilla/4.0[678] no-gzip
## MSIE 会伪装成 Netscape ,但是事实上它没有问题
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
## 设置图片、mp3、压缩格式文件等不需要进行压缩内容

SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ 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
## 确保代理不会发送错误的内容
Header append Vary User-Agent env=!dont-vary

###=============httpd-deflate.conf end=====================
指令说明:
DeflateMemLevel:指定zlib在压缩时最多可以使用多少内存,取值范围在1到9之间。
DeflateWindowSize:定义zlib压缩窗口(compression window)的大小,取值范围在1到15之间,通常窗口越大压缩效果越好。
DeflateBufferSize:定义zlib一次压缩的片断的字节数,默认为8096。
DeflateCompressionLevel:设定压缩程度,越高的压缩程度就会有越好的压缩效果,同时也意味着占用越多的CPU资源。取值范围在

1(最低压缩率) 到 9(最高压缩率)之间,如果不设置此指令,默认为zlib的默认值。
DeflateFilterNote:在日志中放置压缩率标记。
  语法为:DeflateFilterNote type notename
notename就表示这个压缩率标记的名字,你可以为了某种统计目的将这个标记的名字添加到访问日志中。
type指定notename标记所记录的数据类型:Input,在标记中存储过滤器输入流的字节数;Output,在标记中存储过滤器输出流的字

节数;Ratio,在标记中存储过滤器的压缩比(输出/输入*100),这是type的默认值。
SetOutputFilter:设置用于在服务器应答发送到客户端之前使用的过滤器。如果多于一个过滤器,必须按照处理内容的顺序用分号

(;)分隔。
BrowserMatch:基于User-Agent头有条件地设置环境变量。
SetEnvIfNoCase:根据大小写无关的客户端请求属性设置环境变量。
Headers:配置HTTP应答头。这个指令可以替换、合并、删除HTTP应答头。应答头紧跟在内容处理器和输出过滤器完工之后生成,这

时候才能对头进行修改。

 4.3.6 配置mod_expires模块
这个模块控制服务器应答时的Expires头内容和Cache-Control头的max-age指令。有效期(expiration date)可以设置为相对于源文

件的最后修改时刻或者客户端的访问时刻。这些HTTP头向客户端表明了文档的有效性和持久性。如果有缓存,文档就可以从缓存(除已经过期)

而不是从服务器读取。接着,客户端考察缓存中的副本,看看是否过期或者失效,以决定是否必须从服务器获得更新。
编辑mod_expires设置文件:
vi /usr/local/apache-2.2.6/conf/extra/httpd-expires.conf
按下面的提示修改:
###=============httpd-expires.conf begin===================
## mod_expires设置文件

ExpiresActive on
  ExpiresDefault A300
ExpiresByType text/html A300
ExpiresByType image/gif A2592000
ExpiresByType image/jpeg A2592000
ExpiresByType image/png A2592000
ExpiresByType text/css A2592000
ExpiresByType text/js A2592000
ExpiresByType text/javascript A2592000
ExpiresByType application/x-javascript A2592000

###=============httpd-expires.conf end=====================
指令说明:
ExpiresActive:对其作用范围内的文档启用或禁用产生Expires和Cache-Control头的功能。若设置为 Off 则不会为其作用范围内的

任何文档生成Expires和Cache-Control头(除非被更低一层的规则改写,比如.htaccess文件)。若设置为 On 则会按照ExpiresByType和

ExpiresDefault指令定义的标准为其作用范围内的文档生成Expires和Cache-Control头。注意,这个指令并不保证Expires或Cache-Control头

一定会产生。如果定义的标准不规范,将不会产生这两个头,其效果是好像从未设置过这个指令一样。
ExpiresByType:为指定MIME类型的文档配置Expires头的值。
语法为:ExpiresByType MIME-type seconds<br> seconds参数设置了添加到基准时间以构造有效期限的秒数。Cache-Control: max-age的计算方法是从有效期减去当前请求时间并转

化为秒数。
基准时刻可以是源文件的最后修改时刻或者客户端对源文件的访问时刻,至于使用那一个则由指定。"M"表示源文件的最后修

改时刻,"A"表示客户端对源文件的访问时刻。需要注意的是和seconds之间没有空格。如果使用"M",所有当前缓存中的文档副本都将在

同一时刻过期,这个可能对定期更新的URL(比如位于同一位置的每周通告)很有好处。如果使用"A",则每个客户端所得到的有效期是不一样的

,这个可能对那些几乎不更新的图片文件很有好处,特别是对于一组都引用了相同图片的相关文档。
ExpiresDefault:设置其作用范围内的所有文档的默认有效期的计算方法,它可以被ExpiresByType指令基于MIME类型被改写。
语法为:ExpiresDefault seconds<br> <code>seconds同ExpiresByType一致。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

在PyCharm中如何設定Git配置 在PyCharm中如何設定Git配置 Feb 20, 2024 am 09:47 AM

標題:如何在PyCharm中正確配置Git在現代軟體開發中,版本控制系統是非常重要的工具,而Git作為其中一種流行的版本控制系統,為開發者提供了強大的功能和靈活的操作。而PyCharm作為一款功能強大的Python整合開發環境,自備了對Git的支持,能夠讓開發者更方便地管理程式碼版本。本文將介紹如何在PyCharm中正確地配置Git,以便於在開發過程中更好地

Linux系統中GDM的工作原理及配置方法 Linux系統中GDM的工作原理及配置方法 Mar 01, 2024 pm 06:36 PM

標題:Linux系統中GDM的工作原理及設定方法在Linux作業系統中,GDM(GNOMEDisplayManager)是一種常見的顯示管理器,用於控制圖形使用者介面(GUI)登入和使用者會話管理。本文將介紹GDM的工作原理和設定方法,以及提供具體的程式碼範例。一、GDM的工作原理GDM是GNOME桌面環境下的顯示管理器,負責啟動X伺服器並提供登入介面,使用者輸

PyCharm與PyTorch完美結合:安裝設定步驟詳解 PyCharm與PyTorch完美結合:安裝設定步驟詳解 Feb 21, 2024 pm 12:00 PM

PyCharm是一款強大的整合開發環境(IDE),而PyTorch則是深度學習領域備受歡迎的開源架構。在機器學習和深度學習領域,使用PyCharm和PyTorch進行開發可以大大提高開發效率和程式碼品質。本文將詳細介紹如何在PyCharm中安裝設定PyTorch,並附上具體的程式碼範例,幫助讀者更好地利用這兩者的強大功能。第一步:安裝PyCharm和Python

了解Linux Bashrc:功能、設定與使用方法 了解Linux Bashrc:功能、設定與使用方法 Mar 20, 2024 pm 03:30 PM

了解LinuxBashrc:功能、配置與使用方法在Linux系統中,Bashrc(BourneAgainShellrunco​​mmands)是一個非常重要的配置文件,其中包含了系統啟動時自動運行的各種命令和設定。 Bashrc文件通常位於使用者的家目錄下,是一個隱藏文件,它的作用是為使用者自訂設定Bashshell的環境。一、Bashrc的功能設定環境

win11系統如何配置工作小組 win11系統如何配置工作小組 Feb 22, 2024 pm 09:50 PM

Win11系統如何設定工作群組工作群組是一種在區域網路中連接多台電腦的方式,它允許電腦之間共用檔案、印表機和其他資源。在Win11系統中,設定工作群組非常簡單,只需依照下列步驟操作即可。步驟1:開啟「設定」應用程式首先,點擊Win11系統的「開始」按鈕,然後在彈出的選單中選擇「設定」應用程式。你也可以使用快捷鍵“Win+I”開啟“設定”。步驟2:選擇「系統」在「設定」應用程式中,你會看到多個選項。請點選「系統」選項,進入系統設定頁面。步驟3:選擇「關於」在「系統」設定頁面中,你會看到多個子選項。請點

簡單易懂的PyCharm設定Git教學 簡單易懂的PyCharm設定Git教學 Feb 20, 2024 am 08:28 AM

PyCharm是常用的整合開發環境(IDE),在日常開發中,使用Git管理程式碼是不可或缺的。本文將介紹如何在PyCharm中設定Git,並使用Git進行程式碼管理,並附帶具體程式碼範例。第一步:安裝Git首先,確保在你的電腦上已經安裝了Git。如果沒有安裝,可以前往[Git官網](https://git-scm.com/)下載並安裝最新版本的Git

Linux系統中如何設定和安裝FTPS Linux系統中如何設定和安裝FTPS Mar 20, 2024 pm 02:03 PM

標題:Linux系統中如何配置和安裝FTPS,需要具體程式碼範例在Linux系統中,FTPS是一種安全的檔案傳輸協議,與FTP相比,FTPS透過TLS/SSL協議對傳輸的資料進行加密,提高了資料傳輸的安全性。在本文中,將介紹如何在Linux系統中設定和安裝FTPS,並提供特定的程式碼範例。步驟一:安裝vsftpd開啟終端,輸入以下指令安裝vsftpd:sudo

MyBatis Generator配置參數解讀及最佳實踐 MyBatis Generator配置參數解讀及最佳實踐 Feb 23, 2024 am 09:51 AM

MyBatisGenerator是MyBatis官方提供的程式碼產生工具,可以幫助開發人員快速產生符合資料庫表結構的JavaBean、Mapper介面以及XML映射檔。在使用MyBatisGenerator進行程式碼產生的過程中,配置參數的設定是至關重要的。本文將從配置參數的角度出發,深入探討MyBatisGenerator的

See all articles