Articles of caching

两个相同的D7站点之间的内存消耗差异?

我在一个新闻网站上运行Drupal,在头版上有很多不同的视图块(共约5个,全部caching)。 在试图减less网站的内存占用情况时,我已经从SVN中检查了源代码到本地开发安装,尝试将其中一些块转换为更优化的代码。 这是奇怪的事情。 Devel模块在生产站点(运行Nginx,PHP 5.2.17,XCache和Zend Optimizer)上列出了50mb的内存消耗,但在我的开发站点(运行Apache2,PHP 5.2.13和XCache)上只有14mb。 这些都是同一个网站的几乎相同的版本 – 坦率地说,生产站点应该使用更less的内存,因为我禁用了Dev站点上运行的一些模块。 任何想法,为什么这可能是这样的?

Nodejs用于处理js和Nginx来处理所有其他事情

我有一个nodejs运行在端口8000和nginx端口80在同一台服务器上。 我希望Nginx能够处理所有的请求(image,css等),并将js请求转发到端口8000上的nodejs服务器。 有没有可能做到这一点。 我已经将nginxconfiguration为反向代理,但是它将每个请求转发给nodejs,但是我希望nginx处理除js以外的所有请求。 nginx的/启用的站点- /默认/ upstream nodejs { server localhost:8000; #nodejs } location / { proxy_pass http://192.168.2.21:8000; proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; proxy_redirect off; proxy_buffering off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } 更新尝试这个:但没有任何改变,仍然nginx转发每个请求到nodejs server { listen 192.168.2.21:80; server_name server; access_log /var/log/server/access.log; error_log /var/log/server/error.log; root /var/www/static; location / […]

使用IIS 7.5的高速caching控制头

我试图围绕客户端(networking浏览器)caching,以及它如何工作与IIS 7.5caching控制标头有关。 尤其是: 如果我们要强制客户端重新加载caching的资源,IIS必须如何configuration? 如果服务器上的资源具有更新的修改date(或ETag值),我们是否需要立即设置到期网页内容? 现在我们不设置任何caching标题。 因此,如果我设置了no-cache的caching头(我认为这相当于立即将网页内容过期),这将强制网页浏览器获取特定文件的新版本。 或者,浏览器只会在它认为当前的拷贝过期之后才请求一个新的版本,然后从这一点开始不caching呢? 最好的做法是将caching控制标志设置为1周,然后在我知道要进行更改之前的8天将caching控件设置为例如30分钟? 但是,如果我这样做,然后需要立即从用户caching中过期的项目,因为有一个问题,我该怎么做?

Apachecaching了旧的ssl证书

大约两周前,我为我的所有服务器购买了新的通配符SSL证书,并立即尝试通过replace旧的自签名证书设置在服务器上进行设置。 所以,我把新的细节,重新启动apache,并刷新我的浏览器,它仍然抱怨有一个自签名的SSL证书。 所以我进一步调查,并确认它不是我的浏览器或本地caching通过从远程的Windows服务器进行testing,但它仍然服务于旧的自签名证书(但链文件已经更新成功)。 我什至试图重新启动服务器,试图清除Apache的SSLcaching或任何事情,但没有运气那里。 而出于一些疯狂的原因,它在444端口上工作正常,如果我编辑该网站,并将其更改为端口443,它会回到旧的证书…. :(这是怎么回事?它不只是端口443,顺便说一下,我已经testing了端口92XX(因为这就是我的服务运行),即使在一个新的端口上创build一个新的站点后,它也会得到相同的错误我也尝试复制其中一个站点到另一个站点新的,从来没有过SSL)服务器,它工作正常:/ 如何清除Apache的“SSLcaching”或这里正在发生的任何事情(运行Ubuntu 12.10服务器)? 其中一个网站的configuration: <IfModule mod_ssl.c> <VirtualHost *:9207> DocumentRoot /var/www/ssl/ <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/ssl/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/error.log […]

XFS – 强制每n分钟写一次?

我正在运行最近发布的Fedora 18,并用它做了一些计算密集的事情。 结果是…不稳定,至多。 但! 这是关于我的预期,或者至less不是我要在这里抱怨。 我遇到的问题是XFS如何处理磁盘写入 – 缓慢。 我有三个我正在使用的XFS分区,每当系统崩溃时,任何最近创build的文件都会消失。 噗! 而且我厌倦了一遍又一遍地下载同一首歌曲,对我正在使用的实际有用的数据没有任何说法。 尽我所知,这与写caching有关。 所以,我看到了两个解决scheme。 其中一个最明显的,虽然也许不是那么可靠的,但是会迫使驱动器确保一个文件在被读取之前真正被写入。 但也许更好的解决办法,特别是如果我可以build立一个cronjob,将只是每n分钟强制写一个; 大概5,我在想。 显然,如果驱动器在过去的5分钟内没有被写入,那么caching是不值得的! 问题是,XFS是否有强制写入的外部命令? 或者,也许是一个自己的select? 编辑:这有什么原因downvote? 这是大家都知道的,但是我呢? 如果这么愚蠢,也许有人可以为我拼出来。

将内容推送到Apachestream量服务器的caching

我正在尝试使用Apache Traffic Server(ATS)的push cache选项来将一些内容推送到我的caching中。 我阅读文档,并试图遵循它,但我有以下问题/问题使用此选项: 1 –在提到的文档中,为了启用PUSH请求,修改proxy.config.http.quick_filter.mask中的proxy.config.http.quick_filter.mask 。 然而,我找不到这样一个超级面具来修改该文件。 运行grep -r proxy.config.http.quick_filter.mask . 在ATSconfiguration文件夹中显示出这个超级掩码存在于ip_allow.config文件中。 他们是一样的吗? 我应该修改它还是应该添加到records.config ? 不幸的是我不能检查这个由于我的问题2号。 2 –我不知道如何发送这个HTTP PUSH请求和谁(在哪个端口上运行相同的端口ATS?)。 有perl脚本 ,假设自动化的过程中,虽然我不能够运行脚本(不知道任何perl,但工作 – 获取Can't locate File/MimeInfo/Magic.pm in @INC ) 。 我想从脚本中打印出端口,看看如何推入caching。 任何提示/技巧将不胜感激。

Nginx不立即caching页面

我正在使用Nginx的proxy_cache模块进行caching,但注意到页面不会立即caching。 内容是非常dynamic的,每个页面加载产生不同的布局,我试图caching布局一个小时。 Nginx似乎只是快速地处理多个请求后caching页面。 这是我的configuration。 proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=one:8m max_size=1000m; #caching proxy_temp_path /var/tmp; #caching proxy_cache_valid 404 500 1m; proxy_cache_valid 200 60m; proxy_cache_min_uses 1; gzip_comp_level 6; gzip_vary on; gzip_min_length 1000; gzip_proxied any; gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; gzip_buffers 16 8k; upstream staging { server 127.0.0.1:1337; server 127.0.0.1:7331; } server { listen 0.0.0.0:80; server_name […]

Squid代理拒绝在Vary头存在时重新validationcaching

squid.conf中 cache_effective_user squid http_access allow all # Squid normally listens to port 3128 http_port 3128 accel defaultsite=localhost no-vhost ignore-cc cache_peer localhost parent 80 0 no-query originserver name=myAccel cache_peer_access myAccel allow all # Uncomment and adjust the following to add a disk cache directory. cache_dir ufs /usr/local/var/cache/squid 100 16 256 # Leave coredumps in the first […]

检测清漆钩子中的返回码(模式)

在vcl_recv我决定是否通过或查找基于cookie的存在: sub vcl_recv { if (req.http.Cookie ~ "(JSESSIONID=)" ) { /* do not cache logged in users */ return (pass); } return (lookup); } 在vcl_fetch我微调caching的一些网页: sub vcl_fetch { /* custom rules block */ if (req.url ~ "^/foo") { set beresp.ttl=30s; } if (req.url ~ "^/bar") { set beresp.ttl=1m; } if (req.url ~ "^/123") { set […]

我怎么能强制浏览器检查新版本,尽pipecaching指令最多30天?

我在我的网站的根目录中有以下声明: <staticContent> <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="30.00:00:00" /> </staticContent> 我认为这告诉浏览器不要寻找任何文件的新版本,除非它超过30天 – 是正确的吗? 这不是我的意图,我修改了这个指令,但是尽pipe有些浏览器现在正在更新,但有些不是。 有没有办法强制浏览器寻找一个新的版本立即生效? 谢谢。