2022
我们一起努力

apache缓存设置(apache可以用作缓存服务吗)

本文目录:

  • 1、关于apache的缓存
  • 2、Nginx缓存设置教程
  • 3、如何在 apache 中设置缓存有效时间
  • 4、Apache服务器配置与使用工作笔记
  • 5、apache web服务器怎么配置图片缓存?

关于apache的缓存

B服务器,但其丰富的功能对于一个新手来说往往不知道从何下手。我个人感觉Apache的设计充分体现了模块化设计的优势,通过在动态模块加载(DSO)模式下的安装,任何子应用模块都可以通过配置文件的简单修改进行积木式的灵活配置。安装的过程可以从简单的静态html服务开始,一个模块一个模块的学习使用。从单纯的HTML静态服务(core),到复杂的动态页面服务(core + php, core + resin, core + php + mod_gzip, core + resin + mod_expire)。

本文主要从简化安装==性能调优==维护方便的角度,介绍了WEB服务的规划、HTTPD安装/应用模块配置、升级/维护等过程。让Apache和PHP,Resin等应用模块的独立升级,完全互不影响。

WEB应用容量规划:根据硬件配置和WEB应用的特点进行WEB服务的规划及一些简单的估算公式;

Apache安装过程:apache的通用的简化安装选项,方便以后的应用的模块化配置;

修改 HARD_SERVER_LIMIT:

vi /path/to/apache_src/src/include/httpd.h

#define HARD_SERVER_LIMIT 2560 ===将原来的 HARD_SERVER_LIMIT 256 后面加个“0”

apache编译:

./configure --prefix=/home/apache --enable-shared=max --enable-module=most

可选应用模块/工具的安装:php resin mod_gzip mod_expire及各个模块之间的配合;

mod_php安装:./configure --with-apxs=/home/apache/bin/apxs --enable-track-vars --with-mysql

mod_resin安装:./configure --with-apxs=/home/apache/bin/apxs

mod_gzip安装:修改Makefile中的 apxs路径:然后make make install

工具:日志轮循工具cronolog安装:

升级/维护:看看通用和模块化的安装过程如何简化了日常的升级/维护工作;

按照以上的方法:系统管理员和应用管理员的职责可以清楚的分开,互相独立。

系统安装:系统管理员的职责就是安装好一台DSO模式的Apache,然后COLON即可,

应用安装:由应用管理员负责具体应用所需要的模块,比如PHP Resin等,并设置httpd.conf中相关的配置。

系统升级:系统管理员:升级操作系统/升级Apache

应用升级:应用管理员:升级应用模块,PHP Resin等。

WEB应用的容量规划

Apache主要是一个内存消耗型的服务应用,我个人总结的经验公式:

apache_max_process_with_good_perfermance (total_hardware_memory / apache_memory_per_process ) * 2

apache_max_process = apache_max_process_with_good_perfermance * 1.5

为什么会有一个apache_max_process_with_good_perfermance和apache_max_process呢?原因是在低负载下系统可以使用更多的内存用于文件系统的缓存,从而进一步提高单个请求的响应速度。在高负载下,系统的单个请求响应速度会慢不少,而超过 apache_max_process,系统会因为开始使用硬盘做虚拟内存交换空间而导致系统效率急剧下降。此外,同样的服务:2G内存的机器的 apache_max_process一般只设置到1G内存的1.7倍,因为Apache本身会因为进程过多导致性能下降。

Nginx缓存设置教程

| 这篇文章主要介绍了Nginx缓存设置案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下 |

在开发调试web的时候,经常会碰到因浏览器缓存(cache)而经常要去清空缓存或者强制刷新来测试的烦恼,提供下apache不缓存配置和nginx不缓存配置的设置。在常用的缓存设置里面有两种方式,都是使用add_header来设置:分别为Cache-Control和Pragma。

对于站点中不经常修改的静态内容(如图片,JS,CSS),可以在服务器中设置expires过期时间,控制浏览器缓存,达到有效减小带宽流量,降低服务器压力的目的。

以Nginx服务器为例:

【背景】:Expires是Web服务器响应消息头字段,在响应http请求时告诉浏览器在过期时间前浏览器可以直接从浏览器缓存取数据,而无需再次请求。

【相关资料】

1、Cache-control策略

Cache-Control与Expires的作用一致,都是指明当前资源的有效期,控制浏览器是否直接从浏览器缓存取数据还是重新发请求到服务器取数据。只不过Cache-Control的选择更多,设置更细致,如果同时设置的话,其优先级高于Expires。

http协议头Cache-Control :

值可以是public、private、no-cache、no- store、no-transform、must-revalidate、proxy-revalidate、max-age

各个消息中的指令含义如下:

Last-Modified/If-Modified-Since

其最终达到的就是等效于设置这三类html缓存技术:

如何在 apache 中设置缓存有效时间

在 http 报文头中,与缓存时间有关的两个字段是 Expires 以及 Cache-Control 中的 max-age,Expires 设定了一个缓存的过期时间,而 max-age 则设定了一个缓存有效时间(单位秒),通常情况下,两者可以相互推得。(详细参考 浏览器缓存机制浅析)

还是用 WampServer 举例。我们在 www 文件夹下新建个 index.html 页面,在浏览器中打开它,得到的 http 响应头如下:

很显然,我们并没有看到 Expires 或者 max-age 字样。

比如我要把 max-age 设置成 1000,how?

打开 httpd.conf 文件(比如我的是在 F:\wamp\bin\apache\Apache2.2.17\conf 下),找到这一行:

去掉注释(井号),然后再加上这么两行,再重启下apache,就 ok 了:

我们看到 max-age 字段也出现在了响应头中,其实它是根据 Expires 的设置自动填充的。

其他设置类似:

我们也可以直接修改 max-age 字段。

同样在 httpd.conf 文件中,找到这么一行:

去掉注释(井号),再加上这么一句,重启下 apache,就 ok 了:

我们发现得到的响应头里并没有 Expires 字段。

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

uname -m -oecho "/usr/local/apache/lib" /etc/ld.so.confhwclock -w #将时间写入BIOSconfig.layout./configure --enable-layout=xxx.layoutapachectl -k startstatusproc httpdinetd#apachectlgracefulgraceful-stopconfigteststatusfullstatus#一个配置文件中启动多个apacheListen 443

DocumentRoot "xx"httpd -D SSL###################################httpd参数-f xx.conf-e warn-E xx.error-v-V  version -t  test config##################监控APACHE模块mod_statusSetHandler server-status

Order deny,allow

Deny from all

Allow from 192.168.1.2ExtendedStatus On############################### -M  #what modules have been loaded#############安装mod_log_access模块wget zxf mod_log_access-1.03.tar.gzcd mod_log_access-1.03#mod MakefileAPACHE_PREFIX=/usr/local/apacheAPACHE_VERSION=2.2.21make make install#####################################config add moduleLoadModule env_module libexec/mod_env.soClearModuleListAddModule mod_env.so#########################yum -y install mod_perlorwget zxvf mod_perl-2.0-current.tar.gz cd mod_perl-2.0.5perl Makefile.PL MP_APXS=/usr/local/apache/bin/apxsmake make installhttpd -M | grep perl#########加速perl脚本Alias /perl/ /usr/local/apache/cgi-bin/SetHandler perl-script

PerlResponseHandler ModPerl::Registry

PerlOptions +ParseHeaders

Options +ExecCGI

Order allow,deny

Allow from all########################dirctoryfileslocationDirectoryIndexInclude conf/extra/httpd-autoindex.confwebmin gui config toolredhat-config-httpd  gui config toolservernameserveraliasdocumentrootifconfig eth0:0 122.222.222.222 netmask xxx upAddHandler cgi-script .cgi .pl###添加自己的CGI脚本处理程序AddHandler myfiletype .xyAction myfiletype /cgi-bin/program.cgiorSetHandler xx

Action xx /xx.cgi virtual ############################script GET /xx.cgiOptions +ExecCGIssipermanent  temp  seeother  gonerewriteengine onRewriteRule pattern substitution flagsRewriteCondpt:继续处理F:403  G:410  L:该URL不再被重写  NC:忽略大小写  P:交给代理处理RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteLogLevel 0  #禁止重写日志RewriteEngine OnRewriteRule ^/$ /FAQ/ [R]CheckSpelling on  无视URL[R,L]#proxyOrder Deny,Allow

Deny from all

Allow from NoProxyProxyBlockProxyDomainProxyPass xx !ProxyPass /    URL不会被重写CacheDefaultExpire  10    secondCacheDisable  /bin    不缓存CacheEnable mem/fd/disk /bin 用内存 文件 硬盘内存缓存模块LoadModule cache_module modules/mod_cache.soLoadModule mem_cache_module modules/mod_mem_cache.soCacheEnable mem /src/ww/

MCacheMaxObjectCount 100

MCacheMaxObjectSize 1

MCacheMaxStreamingBuffer 65535

MCacheMinObjectSize

MCacheRemovalAlgorithm GDSF

MCacheSize 10240LoadModule cache_module modules/mod_cache.soLoadModule disk_cache_module modules/mod_disk_cache.soCacheRoot /var

CacheEnable disk /

CacheDirLevels 5

CacheDirLength 3mod_file_cache  //无法缓存CGICacheFile /src/index.htmlnmapfile /src/index.html图片和动态内容一般转发到其他服务器Proxypass /img /img 禁止代理服务器转发电子邮件Rewriteengine on

Rewriterule "^proxy:[a-z]*://[^/]*:25(/|$)" "-" [F,NC,L]Proxyblock ww.xx.com#mod_dbd链接DB需要安装apr-utils24小时进行分割CustomLog "|/usr/local/apache/bin/rotatelogs log/access_log 86400" commonCustomLog "|/usr/bin/rotatelogs log/access_log_%Y%m%d 86400 480" combinedErrorLog syslog:local7webalizerawstats#不记录日志SetEnvIfNoCase Referer "xxx"  no_img=1CustomLog logs/access_log combined env=!no_img${Referer}i        引用页面ab -n 1000 -c 10 valid-usermod_security 安全检查nikto 对网站进行检查chkrootkit 系统漏洞检查HostnameLookups off  DNS负载均衡htpasswd -c .htpasswd jonskhtpasswd -D .htpasswd jonshtpasswd .htpasswd jonskAuthType Basic AuthName "Rest Files"AuthUserFile /xxx/apasswdorder deny,allowAllow from all--enable-ssl

apache web服务器怎么配置图片缓存?

LoadModule cache_module modules/mod_cache.so

LoadModule mem_cache_module modules/mod_mem_cache.so

IfModule mod_cache.c

IfModule mod_mem_cache.c

CacheEnable mem /

# cache 40MB

MCacheSize 80960

MCacheMaxObjectCount 21000

MCacheMaxStreamingBuffer 65536

MCacheMinObjectSize 1

MCacheMaxObjectSize 74000

###GDSF 基于缓存命中率和文档大小计算优先级。在必要时,优先级最低的文档被移出缓存

##MCacheRemovalAlgorithm GDSF

#LRU 指定最长时间没有用到的对象将在必要的时候移出缓存

MCacheRemovalAlgorithm LRU

/IfModule

##传输压缩

LoadModule deflate_module modules/mod_deflate.so

IfModule mod_deflate.c

DeflateMemLevel 7

DeflateWindowSize 15

DeflateBufferSize 8096

DeflateCompressionLevel 7

AddOutputFilterByType DEFLATE DEFLATE text/html text/plain application/x-httpd-php application/x-javascript text/css

AddOutputFilter DEFLATE css js php xml js html

AddOutputFilter DEFLATE css #压缩css文件

AddOutputFilter DEFLATE js #压缩js文件

/IfModule

apache缓存设置】的内容来源于互联网,如引用不当,请联系我们修改。

赞(0)
文章名称:《apache缓存设置(apache可以用作缓存服务吗)》
文章链接:https://www.fzvps.com/133978.html
本站文章来源于互联网,如有侵权,请联系管理删除,本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
图片版权归属各自创作者所有,图片水印出于防止被无耻之徒盗取劳动成果的目的。

评论 抢沙发

评论前必须登录!